Avatar billede spectre Nybegynder
12. november 2007 - 23:15 Der er 5 kommentarer

Newb spg. dynamisk angivelse af width i <asp:textbox>

Hej allesammen. Jeg er ny til asp.net (VB) og er lidt i tvivl om hvordan jeg får min <asp:textbox> til at have 'dynamisk' width:

Jeg har en variabel, txtboxWidth, der kan indeholde en integer, og vil gerne vide hvordan jeg får indsat den integer i width-parametren i textbox-tag'et.

Jeg har prøvet med <asp:TextBox style="width:<%=txtUsernameWidth%>px"></asp:TextBox>
men det virker ikke.

Hvad gør jeg?

På forhånd tak
Avatar billede spectre Nybegynder
12. november 2007 - 23:16 #1
Jeg mente selvfølgelig
<asp:TextBox style="width:<%=txtboxWidth%>px"></asp:TextBox>

:)
Avatar billede spectre Nybegynder
12. november 2007 - 23:19 #2
Her er koden, som jeg initialiserer txtboxWidth med:

<%
Dim txtboxWidth = 170
If Len(Request("extra"))>0 Then
  txtboxWidth = 80
End If
%>
Avatar billede neoman Novice
13. november 2007 - 10:47 #3
1. Du skal kigge opmærksomt i designeren og i fejllisten - jeg tvivler meget på at den accepterer din kode, fordi en asp:kontrol ikke "æder" en html style parameter. På ASP-tags skal der som regel være en CssClass

2. en asp:textBox HAr en Width-parameter, som kan sættes direkte, enten i mark-up eller i code behind:
- <asp:TextBox Id="TextBox1" .... Width="100px" ..>
eller
TextBox1.Width=100

3. Din kode skal så være:
Dim txtboxWidth = 170
If Len(Request("extra"))>0 Then
  txtboxWidth = 80
End If
myTextBox.Width=txtboxWidth

4. Brug code-behind -  det får du ved at sætte flueben i feltet Place code in separate file når du opretter en ny side. Det er måske forvirrende de første 10 sekunder, men gør livet SÅÅÅÅ meget nemmere.
Avatar billede mikkel_sommer Nybegynder
14. november 2007 - 10:24 #4
Jeg ville også bruge code-behind filen som neoman skriver, dog mener jeg at når man  skal bruge Unit når man sætter størrelser på side elementer:

aspx:
<asp:TextBox id="tbUserName" style="width:<%=txtboxWidth%>px"></asp:TextBox>
(HUSK ID!)

code-behind:
Dim txtboxWidth = 170
If Len(Request("extra"))>0 Then
  txtboxWidth = 80
End If

tbUserName.Width = new Unit(txtboxWidth);
Avatar billede mikkel_sommer Nybegynder
14. november 2007 - 10:25 #5
*dog mener jeg at man skal bruge Unit....
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

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