2013-03-29 42 views
0

我有一個複選框,它負責顯示/隱藏div。我創建了一個自定義屬性「myDiv」,並​​將複選框負責的div的名稱放在那裏。如何從代碼中獲取屬性的值?

<asp:CheckBox ID="CheckBox1" myDiv="divRegisteration" myText=" הרשמה - " runat="server" AutoPostBack="true" Font-Size="18px" Font-Bold="true" Text=" הרשמה - הצג" OnCheckedChanged="CheckBox_CheckedChanged"/> 

當我試圖從後面的代碼div的名字,我得到一個錯誤:

protected void CheckBox_CheckedChanged(object sender, EventArgs e) 
    { 
     if (((CheckBox)(sender)).Checked==true) 
     { 
      CheckBox chk = (CheckBox)(sender);    
      object div = chk.Parent.FindControl(chk.Attributes["myDiv"]); 

沒有找到屬性「myDiv」。出於某種原因,它只能找到2個屬性,我甚至不知道它們來自哪裏。有另一種獲得自定義屬性的方法嗎?

+0

你檢查的divRegistration的存在Parent.Controls財產? –

+0

爲什麼不只是說CheckBox1.Attributes [「myDiv」] – btevfik

+0

CheckBox1是不是divRegisteration的子,這是問題.. –

回答

2

您只能設置要在客戶端渲染的屬性,當從POSTED開始時,無法直接訪問屬性值(在服務器端)。要訪問屬性值,可以使用隱藏字段,可以通過javascript在客戶端設置隱藏字段。

0

你可以通過使用jQuery

if ($('#CheckBox1').is(':checked')) { 

    $("#Urdiv").show(); 
} else { 
    $("#Urdiv").hide(); 
} 

使用的clientId在CheckBox1

相關問題