簡體   English   中英

使用asp.net在gridview中選中復選框時更改div顯示

[英]change div display while checkbox checked in gridview using asp.net

我有綁定到數據庫的gridview 我有一個checkbox ,我想用checkbox選中值更改另一個div display屬性。 這是我在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");
        }
    }
}

據我所知,Asp.Net CheckBoxes沒有名為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復選框。

嘗試找到Div

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

您可以將OnCheckedChanged事件用於checkbox而不是onRowCommand如下所示:

標記

<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");
        }           
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM