2017-07-29 120 views
0

我有gridview綁定到數據庫。有checkbox其中,我想更改display屬性的另一個divcheckbox檢查值。 這是我在asp.net中的後端代碼,但它不起作用!我能做些什麼來解決它?更改div顯示,而gridview使用asp.net檢查複選框

protected void gv_sourceGalleryPic_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "checkPic") 
    { 
     CheckBox chkItem = (CheckBox)gv_sourceGalleryPic.FindControl("ck_checkGalleryPic_copyMove"); 

     if (chkItem.Checked == true) 
     { 
      div1.Style.Add(HtmlTextWriterStyle.Display, "block"); 
     } 
    } 
} 
+0

定義 「不工作」。複選框是否失去了狀態?有錯誤嗎? div是否保持隱藏? – VDWWD

回答

0

您可以使用checkbox代替onRowCommand這樣OnCheckedChanged事件:

標記

<asp:GridView runat="server" ID="gv_sourceGalleryPic"> 
    <Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
     <asp:CheckBox ID="ck_checkGalleryPic_copyMove" runat="server" 
      OnCheckedChanged="chkBox_CheckedChanged" AutoPostBack="true" /> 
     </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

代碼背後

protected void chkBox_CheckedChanged(object sender, EventArgs e) 
    { 
     CheckBox chk = sender as CheckBox; 

     if (chk.Checked) 
     { 
      div1.Style.Add(HtmlTextWriterStyle.Display, "block"); 
     }   
    } 
+0

事實上,在這種情況下,它會更好地運行客戶端。 –

+0

感謝Mr Soltani –

+0

@ jh_6990如果它可以幫助你,請註冊這個答案,所以人們知道這是正確的答案,並幫助他們。 –

0

試圖找到事業部

HtmlGenericControl div1= (HtmlGenericControl)gv_sourceGalleryPic.FindControl("div1"); 
+0

謝謝,但'div1'不在'gridview'中。 –

1

我所知,Asp.Net的CheckBox沒有命名CommandNameCommandArgument屬性。因此,您不能使用RowCommand事件,當您更改選中時將觸發此事件。 你應該使用一些簡單的JavaScript代碼,而不是像下面的示例代碼:

function hidediv(chk) { 
     var element = document.getElementById("div1"); 
     if (chk.checked) 
     { element.style.display = 'none'; } 
    } 

再火上這樣所有的複選框的變化情況下,本功能:

onchange="hidediv(this);" 

順便說一句,如果你只想更改顯示div部分,最好使用html輸入標記而不是asp.net複選框。