Avatar billede websam Nybegynder
24. april 2006 - 09:55 Der er 19 kommentarer og
2 løsninger

Id på controller skifter ?

Hejsa,

Jeg har over weekende erfaret at id'er på nogle textboxe åbentbart skifter som det passer dem. Hvis jeg opretter en en textbox med id txt_Name så laves det om til ctl00_txt_Name hvilket hvilket jeg så har sat et javascript til at respondere på nu ligger landet så sådan at mit javascript ikke længere virker hvilket skyldes at id'et på textbox'en pludselig er ændret til ctl01_txt_Name i stedet for ctl00_txt_Name.

Hvad sker der lige og hvorfor ændre id'et sig ?

Jeg har ikke lavet nogle ændringer på siden så det er ikke derfor ?

/Websam
Avatar billede dr_chaos Nybegynder
24. april 2006 - 09:57 #1
har du tilføjet en ny masterpage ?
Avatar billede websam Nybegynder
24. april 2006 - 09:59 #2
Nej jeg har ikke brugt masterpage til det pågældende
Avatar billede dr_chaos Nybegynder
24. april 2006 - 10:02 #3
du kan undgå det ved i dit javascript at gøre på denne måde:

<script>
alert('<%#dinTextbox.ClientID%> ');

</script>
Avatar billede dr_chaos Nybegynder
24. april 2006 - 10:02 #4
eller noget i den stil.
Avatar billede dj_uncas Nybegynder
24. april 2006 - 10:07 #5
Det er sådan her: alert( '<%= txt_name.ClientID %>' );

Din kontrol får ctl01_ på for at ASP.NET parseren kan holde styr på ViewState og dit kontroltræ. ctl01_txt_name betyder at du har en kontrol (her er det din <form runat="server">) der får id'et ctl01, og at txt_name ligger i dens ControlCollection.

Prøv at lave en PlaceHolder inde i din form, og så ligge en textbox derind. Så er ClientID'et pludselig noget helt andet :-)
Avatar billede websam Nybegynder
24. april 2006 - 10:12 #6
Forklaring til mit javascript. Jeg popper et vindue med Default.aspx?field=ctl00_TextBox5 hvor ctl00_TextBox5 er ideet fra textbox'en. På den måde ved jeg hvilken textbox jeg skal respondere til i mit popup vindue. Her klikker jeg så på et link som smider et tal i min textbox og lukker det poppede vindue efter sig og det virker så ikke når id'et tilsyneladende skifter som vinden blæser.
Avatar billede websam Nybegynder
24. april 2006 - 10:26 #7
Altså dette javascript popper vinduet :

function PopWin(url,h,w)
    {
        popupWin = window.open(url, 'popup', 'height=' + h + ',width=' + w + ',top=200,left=200')
}

Hvor jeg så bruger følgende til at poppe vinduet :

    onclick="PopWin('../treeview/Default.aspx?field=ctl00_TextBox5','440','550')"

På den side der poppes har jeg så et javascript der ser sådan ud :

function setOpenerValue(value)
    {
        var fieldName = "<%=Convert.ToString(Request.QueryString("field"))%>";
        var fieldsToShow = "<%=Convert.ToString(Request.QueryString("show"))%>";
        opener.setFieldValue(fieldName, fieldsToShow, value);
        self.close();
    }

Dette script sørger så for at sende det valgte tal retur til siden med min textbox.

Hvordan ændre jeg så dette ?

/Websam
Avatar billede dr_chaos Nybegynder
24. april 2006 - 10:44 #8
hvordan sætter du url ?
Avatar billede websam Nybegynder
24. april 2006 - 10:45 #9
Det gør jeg med denne :

onclick="PopWin('../treeview/Default.aspx?field=ctl00_TextBox5','440','550')"
Avatar billede dr_chaos Nybegynder
24. april 2006 - 10:48 #10
hvor sidder denne onclick ?
Avatar billede dr_chaos Nybegynder
24. april 2006 - 10:51 #11
noget i denne stil ?
onclick="PopWin('../treeview/Default.aspx?field='<%=dinTextbox.ClientID%>','440','550')"
Avatar billede websam Nybegynder
24. april 2006 - 10:52 #12
Den sidder i et link :

<a href="side.aspx" onclick="PopWin('../treeview/Default.aspx?field=ctl00_TextBox5','440','550')" Runat="server">Pop Vindue</a>
Avatar billede websam Nybegynder
24. april 2006 - 10:53 #13
Det har jeg prøvet og det virker ikke
Avatar billede dr_chaos Nybegynder
24. april 2006 - 11:30 #14
Du kan bruge:
<a id="A1" href='' onclick="PopWin('../treeview/Default.aspx?field=<%=Textbox1.ClientID%>','440','550')">Pop</a>
        <asp:textbox ID="Textbox1" runat="server"></asp:textbox>
Avatar billede websam Nybegynder
24. april 2006 - 11:38 #15
Nej det kan jeg ikke for hvis du så tager og vælger egenskaber for den side der er poppet så ser url'en sådan ud :

http://www.side.dk/default.aspx?field=<%=Textbox1.ClientID%>

Og her skulle der så have stået ?field=ctl01_TextBox5 for at det virker ?

/Websam
Avatar billede dr_chaos Nybegynder
24. april 2006 - 11:41 #16
fjern runat server fra linket
Avatar billede websam Nybegynder
24. april 2006 - 11:55 #17
Ja ser du det var jo en helt anden snak, så har jeg bare lidt småting der skal ændres i min codebehind da jeg jo så som eks. ikke kan lave A1.Title = "Popper et nyt vindue", men det kan jeg nok godt leve med ;o)

/Websam
Avatar billede dr_chaos Nybegynder
24. april 2006 - 12:03 #18
perfekt :) tillader mig lige at smide et svar.
tror evt at det er fair at jeg deler lidt med dj_uncas
Avatar billede dj_uncas Nybegynder
24. april 2006 - 12:03 #19
Hvis du alligevel har en javascript funktion der åbner vinduet, kan du jo også bruge den til at ændre <a>'ets titel.
Avatar billede websam Nybegynder
24. april 2006 - 12:11 #20
Ja det er selvfølgelig en mulighed, smid et svar dj_uncas så kan i dele.

/Websam
Avatar billede dj_uncas Nybegynder
24. april 2006 - 12:20 #21
all right.
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