WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Kontroll i .Net formulär (https://www.wn.se/forum/showthread.php?t=33398)

Slanter 2008-11-19 15:51

Är nybörjare på .Net och håller just nu på och gör ett anmälningsformulär.
Vissa delar gäller bara om man har kryssat för en viss ruta. Skulle därför vilja att de fälten är "gråade" och inte går att fylla i om man inte kryssat för denna ruta.
Hur löser jag detta? Gärna något kod exempel då jag som sagt är nybörjare på detta.

Använder asp:textboxar och asp:checkboxar

Tack!

allstars 2008-11-19 16:03

testa "disabled" alternativt "readonly".

Några val bör du få upp som är relaterade till detta.

Slanter 2008-11-19 16:06

Men hur ändrar jag statusen från diabled eller readonly till att kunna använda fältet? (mha en checkbox)

Jan Eriksson 2008-11-19 16:26

Lägg till en CheckBox och lägg till AutoPostBack="true".
Lägg till en textBox


I koden skriver du ungefär.



Sub Page_Load(.........

if Checkbox.checked Then
textbox.enabled = true
Else
textbox.enabled = false
End If

End Sub


Eller lite enklare:

textbox.enabled = Checkbox.checked

Daniel.st 2008-11-19 17:04

Enklare att lösa det via JavaScript än att behöva göra en postback.

Jan Eriksson 2008-11-19 17:13

Citat:

Originally posted by Daniel.st@Nov 19 2008, 17:04
Enklare att lösa det via JavaScript än att behöva göra en postback.

Då skulle inte fråga ligga i Serversidans teknologier. :)

Ge Slanter ett kodexempel så blir han säkert glad.

quickhelp 2008-11-19 22:11

Ex:

Kod:

<asp:CheckBox ID="CheckBox1" runat="server" Text="CheckBox1" OnCheckedChanged="CheckBox1_CheckedChanged" AutoPostBack="True"  />
<asp:TextBox ID="Text1" runat="server"></asp:TextBox>
<asp:TextBox ID="Text2" runat="server"></asp:TextBox>
<asp:TextBox ID="Text3" runat="server"></asp:TextBox>

Kod:

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
  Text2.ReadOnly = CheckBox1.Checked;
  Text3.ReadOnly = CheckBox1.Checked; 
}


ChristofferP 2008-11-19 23:36

Både .ReadOnly = true och .Enabled = false fungerar men beter sig lite olika vilket kan vara bra att känna till, finns förklarat här: http://stackoverflow.com/questions/174319/

TommyTisen 2008-11-20 22:44

Ett annat exempel där man öppnar upp dom genom javascript direkt:


<asp:CheckBox ID="CheckBox1" runat="server" Text="CheckBox1" Checked="false" onclick="CheckBox1_CheckedChanged(this);" />
<asp:TextBox ID="Text1" runat="server" Enabled="false" Text="Text1"></asp:TextBox>
<asp:TextBox ID="Text2" runat="server" Enabled="false" Text="Text2"></asp:TextBox>
<asp:TextBox ID="Text3" runat="server" Enabled="false" Text="Text3"></asp:TextBox>

<script type="text/javascript">
function CheckBox1_CheckedChanged(obj)
{
if (obj.checked)
{
$get('<%=Text1.ClientID %>').disabled=false;
$get('<%=Text2.ClientID %>').disabled=false;
$get('<%=Text3.ClientID %>').disabled=false;
}
else
{
$get('<%=Text1.ClientID %>').disabled=true;
$get('<%=Text2.ClientID %>').disabled=true;
$get('<%=Text3.ClientID %>').disabled=true;
}
}
</script>

crazzy 2008-11-21 00:07

@TommyTisen:

Ser ut som du använder dej av ett javascript bibliotek också. Jag har iallafall inte sett $get() i vanlig standard-js. Kanske skulle skriva vilket library också. Eller har jag helt åt helsike fel?


Alla tider är GMT +2. Klockan är nu 08:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson