Avatar billede heloo Nybegynder
07. marts 2008 - 14:02 Der er 15 kommentarer og
1 løsning

ide til at fange data

Hej,

Jeg har en side (som bruger en masterpage) med en tekstbox og en knap.
Når man klikker på knappen åbnes en popup (window.open...)

den aspx side som loades i popuppen skal kunne hente værdien fra min tekstbox og vise det...

Hvad gør jeg?
Avatar billede jokkejensen Novice
07. marts 2008 - 14:17 #1
post tekstbox variablen med over i querystring

window.open('side.aspx' + "?textboxvalue=" + document.getElementById("textbox").value);

/J
Avatar billede heloo Nybegynder
07. marts 2008 - 15:05 #2
det kan man ikke da controllen indeholder $ i name når den bruger masterpage.

og så virker document.getElementById ikke i firefox osv...
Avatar billede heloo Nybegynder
07. marts 2008 - 15:05 #3
Avatar billede jokkejensen Novice
07. marts 2008 - 15:13 #4
what ? virker document.getElementById ikke i firefox ?

Så skal jeg vist lige have læst lidt mere på det :)

Du kan godt window.open(side.aspx);
men du kan ikke window.open('side.asp'+ "?skod=2");

???

Vh,.
Avatar billede jokkejensen Novice
07. marts 2008 - 15:28 #5
Åh en .net textbox..

<asp:textbox runat="server" value="skod" />

<script type="text/javascript">
var text = document.getElementById("<%= button.ClientID %>");
window.open("side.aspx?"+ text.value)
</script>
Avatar billede jokkejensen Novice
07. marts 2008 - 15:28 #6
<asp:textbox runat="server" id="button" value="skod" />
Avatar billede olebole Juniormester
07. marts 2008 - 15:35 #7
<ole>

heloo >> Hvis du ikke kan få .net til at bruge valid kode, bør du jo vælge en anden fremgangsmåde. Uanset, om du prøver at bruge getElementById eller ej, er der tale om invalid kode - og du udsætter i bedste fald blot problemerne. Tramper man på termometret, er patienten stadig syg ... man kan bare ikke aflæse hans temperatur  ;o)

jokkejensen >> tegnet '$' må ikke optræde i en identifier.

/mvh
</bole>
Avatar billede heloo Nybegynder
07. marts 2008 - 15:42 #8
ole>>

lol, du har ret...
men det er jo netop en ide, som virker og er rigtig, jeg leder efter her...
Avatar billede jokkejensen Novice
07. marts 2008 - 16:06 #9
Så brug et andet framework..  Der er bestemt ikke $ i id'erne på de nye, kun i NAME og der er en væsentligt forskel når jeg skriver getElementById....

/JJ
Avatar billede jokkejensen Novice
07. marts 2008 - 16:06 #10
Hvordan skulle .net kunne generere javascript til alle de kontroller egentligt ????
Avatar billede jokkejensen Novice
07. marts 2008 - 16:07 #11
fra vis kilde på msdn:

<input id="ctl00_bnr_tabs_SearchTextBox" class="TabStrip_SearchBox" type="text" onblur="tabs_onBlurSearch(this);" onfocus="tabs_onFocusSearch(this);" title="Søg på MSDN" value="Søg på MSDN med Live Search" name="ctl00$bnr$tabs$SearchTextBox"/>

Det er lidt Jer der er galt på den :)

/JJ
Avatar billede jokkejensen Novice
07. marts 2008 - 16:08 #12
svar !
Avatar billede olebole Juniormester
08. marts 2008 - 14:21 #13
jokkejensen >> Hvis jeg forstå din kommentar:
"Der er bestemt ikke $ i id'erne på de nye, kun i NAME og der er en væsentligt forskel når jeg skriver getElementById.... "

- korrekt, så er det dig, der er galt på den.
Ja, den du viser i (07/03-2008 16:07:59) har kun '$' i name attributten, men på den kan du jo slet ikke bruge getElementById til ... der mangler en ID  ;o)
Avatar billede jokkejensen Novice
10. marts 2008 - 13:10 #14
<input id="ctl00_bnr_tabs_SearchTextBox"

Jeg kan desværre ikke markere med fed.. men jeg syntes nu fint den har et id.

Og fordi asp.net arbejder i et træhiearki med deres server controller og dynamisk tildeler id's afhængigt af hvilke kontroller de ligger i, er det dumt at skrive document.getElementById("ctl00_bnr_tabs_SearchTextBox") men smartere med min kommentar 07/03-2008 15:28:43..

Ok ?

vh. Jacob
Avatar billede mikalj Nybegynder
10. marts 2008 - 15:29 #15
du kan i codebehind få fat i det id som en control vil få i den endelige html kode ved at bruge <control>.ClientID

Så du kan altså lave noget javescript som bruger getElementById med den korrekte id til at tilgå et html element.

string script = string.Format(@"
<script type='text/javascript'>
function openPopup()
{{
    var textbox = document.getElementById('{0}');
    var w = window.open('urlher', 'windownavnher', 'attributterher');
    w.setValue(textbox.value);
    w.focus();
}}
</script>
", TextBox1.ClientID);

Literal lit = new Literal();
lit.Text = script;
Page.Header.Controls.Add(lit);

Og så sætter du selvfælgelig din knap til at kalde javascript funktionen "openPopup()"
I dit popup vindue laver du således også en javascript function

function setValue(str)
{
    var span = document.getElementById('span1');
    span.innerHTML = str;
}

Det er i hvert fald metoden jeg ville bruge
Avatar billede jokkejensen Novice
10. marts 2008 - 15:39 #16
hvordan adskiller den sig fra min ? :) - jeg nævner også at han skal benytte ClientID, men den bliver lidt høvlet til jorden :)

Jeg har fået vores backend udviklere til at lave det om, så når jeg giver den et server id, så beholder den det frontend. Men fra en backenders point of view, så vil man nok foretrække at have JS i codebehind - men føj hvor er det forkert. (endeligt et sted jeg regner med olebole vil give mig ret :) )

/JJ
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester