2011-01-08 6 views
0

Ich habe einen Repeater mit einem Kontrollkästchen und einem Textfeld, das ich an eine Datenquelle binde. Abhängig von den Bedingungen aus dem Code dahinter, möchte ich das Kontrollkästchen und das Textfeld dynamisch deaktivieren können.Wie deaktiviere ich ein Steuerelement innerhalb eines Repeaters

Zur Zeit ist das, was ich in der

<td><asp:CheckBox runat="server" onclick="checkbox(this); CheckChildren(this);" Enabled='<%#DataBinder.Eval(Container.DataItem, "DISABLE") %>' Text='<%#DataBinder.Eval(Container.DataItem, "CTEXT") %>' Value='<%#DataBinder.Eval(Container.DataItem, "CVALUE") %>' /></td> 

<td><asp:TextBox runat="server" onkeyup="AppendValues(this);" Enabled='<%#DataBinder.Eval(Container.DataItem, "DISABLE") %>' Width="35px" MaxLength="3" Name='<%#DataBinder.Eval(Container.DataItem, "CNAME") %>' CValue='<%3DataBinder.Eval(Container.DataItem, "CNTVALUE") %>'></asp:TextBox></td> 

Die # DataBinder.Eval (Container.DataItem, „disable“) haben auf den String-Wert von „true“ hinter noch auf dem Code festgelegt wird, wenn Der Code wird ausgeführt. Ich erhalte einen InvalidCastException-Fehler.

Was mache ich falsch?

Antwort

0

Sie müssen einen boolean Wert an die Enabled Eigenschaft übergeben. Versuchen Sie so etwas

bool.Parse(DataBinder.Eval(Container.DataItem, "DISABLE").ToString()) 
+0

Sie tun dies in dem Code hinter korrekt? – mattgcon

+0

Nein, Sie müssen dies in Ihre aspx/ascx-Datei einfügen, in Ihrer <%# %> Deklaration – karlis

Verwandte Themen