【问题标题】:Checkchanged not firing when inside a gridview in asp.net在 asp.net 的网格视图中时,Checkedchanged 不会触发
【发布时间】:2015-04-01 18:34:55
【问题描述】:

我有一个gridview,里面有一个用于项目状态的复选框, 复选框有 checkchanged 事件,但是当我尝试选中或取消选中它时,checkchanged 没有触发。

这里是带有复选框的gridview的代码

 <asp:GridView ID="dgvItems" runat="server" OnRowCreated="dgvItems_RowCreated" OnRowDataBound="dgvItems_RowDataBound" OnSelectedIndexChanged="dgvItems_SelectedIndexChanged" OnRowDeleting="dgvItems_RowDeleting">
   <Columns>
       <asp:TemplateField HeaderText ="Status">
           <ItemTemplate>
              <asp:CheckBox ID="chkStatus" runat="server" Checked = <%# (string)Eval("item_status") == "Active" ? true : false %> OnCheckedChanged="chkStatus_CheckedChanged" AutoPostBack="True" />
           </ItemTemplate>
       </asp:TemplateField>
   </Columns>
</asp:GridView>

 protected void chkStatus_CheckedChanged(object sender, EventArgs e)
    {
        GridViewRow row = dgvItems.SelectedRow;
        string item_id = row.Cells[0].Text.ToString();

        con.Open();
        SqlCommand cmd = new SqlCommand("Update Items set item_status = 'Inactive' where item_id = @item_id ",con);
        cmd.Parameters.AddWithValue("@item_id", cmd);
        cmd.ExecuteNonQuery();

        con.Close();
    }

提前致谢!

【问题讨论】:

    标签: c# asp.net gridview checkbox


    【解决方案1】:

    我想到了两件事:

    1. 您的Page_Load 不处理IsPostBack 属性,因此您始终在对网格进行数据绑定,即使在回发时也是如此。这可以防止事件发生。
    2. GridViewRow row = dgvItems.SelectedRow;null

    使用此代码从选中的CheckBox 中获取GridViewRow

    CheckBox chkStatus = (CheckBox) sender;
    GridViewRow row = (GridViewRow) chkStatus.NamingContainer;
    

    【讨论】:

    • 您好,谢谢! isPostBack 防止检查更改
    【解决方案2】:

    如果您的选中状态最初为 false,则再次将其设置为 false 不会触发 CheckedChanged 事件。 发生这种情况是因为检查状态实际上没有改变

    这是尝试设置CheckBox1.Checked 属性时使用的内部代码

    public void set_Checked(bool value)
    {
    if (value != this.Checked)
    {
        this.CheckState = value ? CheckState.Checked : CheckState.Unchecked;
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      相关资源
      最近更新 更多