C# 使用asp.net在gridview中选中复选框时更改div显示

C# 使用asp.net在gridview中选中复选框时更改div显示,c#,asp.net,gridview,checkbox,C#,Asp.net,Gridview,Checkbox,我有绑定到数据库的GridViews。其中有一个复选框,我想用复选框checked值更改另一个div的display属性。 这是我在asp.net中的后端代码,但它不工作!我能做些什么来解决它 protected void gv_sourceGalleryPic_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "checkPic") { CheckBox ch

我有绑定到数据库的GridViews。其中有一个复选框,我想用复选框checked值更改另一个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");
        }
    }
}
找迪夫

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

据我所知,Asp.Net复选框没有名为CommandName和CommandArgument的属性。因此,您不能使用RowCommand事件,当您更改checked时将触发该事件。 您应该使用一些简单的javascript代码,而不是下面的示例代码:

function hidediv(chk) {
        var element = document.getElementById("div1");
        if (chk.checked) 
        { element.style.display = 'none'; }
    }
然后在所有复选框发生更改事件时启动此函数,如下所示:

onchange="hidediv(this);"
顺便说一下,如果您只想更改显示div节,最好使用html输入标记而不是asp.net复选框。

您可以使用OnCheckedChanged事件作为复选框而不是onrow命令,如下所示:

onchange="hidediv(this);"
加价


定义不工作。复选框是否会丢失其状态?有错误吗?div是否仍然隐藏?事实上,在这种情况下,最好在客户端运行。@jh_6990如果这个答案对您有帮助,请向上投票,以便人们知道这是正确的答案,并帮助他们。
protected void chkBox_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox chk = sender as CheckBox;

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