繁体   English   中英

将Checked Changed Event添加到复选框时出错-使用c#将其动态添加到asp.net应用程序中的Gridview

[英]Error in adding Checked Changed Event to a checkbox- which is added dynamically to a gridview in asp.net application using c#

这是我的代码

foreach (GridViewRow row in GridView1.Rows)
{
    dataReader.Read();
    if (row.RowType == DataControlRowType.DataRow)
    {
        CheckBox cb = new CheckBox();
        cb.ID = "chkbox";
        if (int.Parse(dataReader[0].ToString()) == 0)
            cb.Checked = false;
        else
            cb.Checked = true;
        cb.CheckedChanged += new EventHandler(chkBoxChange);
        row.Cells[4].Controls.Add(cb);
    }
}

但是即使我写过:

cb.CheckedChanged += new EventHandler(chkBoxChange);

功能

public void chkBoxChange(object sender, EventArgs e)
{                   
}

我选中CheckBox时未调用。

[测试代码]

您可以在GridView的OnRowCreatedOnRowDataBound事件中使用以下代码。

这种方法将成功调用动态创建的CheckBox的CheckedChanged事件。

if (e.Row.RowType == DataControlRowType.DataRow)
{
    CheckBox cb = e.Row.Cells[4].FindControl("chkbox") as CheckBox;
    if (cb == null)
    {
        cb = new CheckBox();
        cb.ID = "chkbox";
        cb.AutoPostBack = true;
        cb.CheckedChanged += new EventHandler(chkBoxChange);
        e.Row.Cells[4].Controls.Add(cb);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM