【问题标题】:Is it possible to toggle ReadOnly on a CheckBox column in an ASP.NET GridView?是否可以在 ASP.NET GridView 中的 CheckBox 列上切换 ReadOnly?
【发布时间】:2016-02-12 12:00:03
【问题描述】:

我在 asp:GridView 中有一个 asp:CheckBoxField 列。 如果它已经被选中,我想将该列设为只读。 该字段由数据库中的布尔值填充。

到目前为止,我只能在设计时设置列的 ReadOnly 属性。当我尝试在代码中动态设置它时,它似乎没有做任何事情。

是否有引用 GridView 内 Checkboxes 的“ReadOnly”属性?

【问题讨论】:

  • 是的,您绝对可以引用该值,您应该为 EditLinkBut​​ton 设置一个类似 LinkButton lnk = sender as LinkButton; GridViewRow gr = (GridViewRow)lnk.NamingContainer; string tempID = gv.DataKeys[gr.RowIndex].Value.ToString(); 的事件,一旦您获得所在的行,您就可以获取或设置复选框值

标签: c# asp.net gridview checkbox


【解决方案1】:

您可以通过 gridviews 行数据绑定事件来实现这一点

<asp:gridview id="Gridview1" runat="server" onrowdatabound="Gridview1_RowDataBound" ..........>

在后面的代码中

 protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            CheckBox chk = (CheckBox)e.Row.FindControl("chkBox");
            if (chk.Checked==true)
            {
                chk.Enabled = false;
            }
            else
            {
                chk.Enabled = true;
            }
        }
    }

【讨论】:

  • 感谢 Sruthi 提供的信息。我实际上尝试使用该代码,但它没有用。我在那个事件上设置了一个断点,它从来没有被调用过。
  • @MatthewWalk - 我之前遇到过这个问题,它没有触发。您是否尝试将&lt;asp:gridview id="Gridview1" runat="server" onrowdatabound="Gridview1_RowDataBound"&gt; 添加到控件中?
猜你喜欢
  • 1970-01-01
  • 2011-04-11
  • 2010-10-25
  • 2010-09-18
  • 2011-04-15
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多