【问题标题】:change div display while checkbox checked in gridview using asp.net使用asp.net在gridview中选中复选框时更改div显示
【发布时间】:2017-07-29 07:35:59
【问题描述】:

我有gridview绑定到数据库。其中有checkbox,我想用checkbox 选中值更改另一个divdisplay 属性。 这是我在 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");
        }
    }
}

【问题讨论】:

  • 定义“不工作”。复选框是否会丢失其状态?有错误吗? div 是否保持隐藏状态?

标签: c# asp.net gridview checkbox


【解决方案1】:

据我所知,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 复选框。

【讨论】:

    【解决方案2】:

    您可以将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");
            }           
        }
    

    【讨论】:

    • 事实上,在这种情况下,最好在客户端运行。
    • @jh_6990 如果对您有帮助,请点赞这个答案,这样人们就知道这是正确的答案并帮助他们。
    【解决方案3】:

    尝试查找Div

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

    【讨论】:

      猜你喜欢
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多