如何在gridview中获取复选框值

时间:2012-10-02 14:43:48

标签: c# asp.net gridview checkbox

请你帮我解决这个问题,即使我检查gridview中的控件,我也会将复选框控件值设置为false。

for (int i = 0; i < GridView1.Rows.Count; i++)
{
    CheckBox CheckBox1 = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");

    if (CheckBox1 != null)
    {
        if (CheckBox1.Checked)
        {
            query = GridView1.Rows[i].FindControl("Label1") + ",";
        }
    }
}

2 个答案:

答案 0 :(得分:2)

您是否在Page_Load方法上进行数据绑定?如果是,您必须这样做:

if(!IsPostBack)
{
    GridView1.DataSource = YourData;
}

如果您不这样做,即使DataGridViewPostBack,您的DataGridView也会被数据绑定。这样,无论您选择了什么,都会从回发的数据源重新填充if(!IsPostBack)

使用上面的代码,当您执行Checked时,它会保留复选框的viewstate值,并获得正确的{{1}}状态。

答案 1 :(得分:0)

在复选框设计中添加以下属性

  

ToolTip =“&lt;%#Container.DataItemIndex + 1%&gt;”然后是后面的代码

for (int i = 0; i < gdview.Rows.Count; i++)
    {
        string labeldetail = "";

        CheckBox cbox = (CheckBox)gdview.Rows[i].Cells[0].FindControl("CheckBox1");

        if (cbox != null)
        {
            if (cbox.Checked == true)
            {

                int rowsNo = (Convert.ToInt16(city.ToolTip) - 1); //Convert.ToInt16(SrNo);
               labeldetail = ((Label)gdview.Rows[rowsNo].FindControl("labelid")).Value;

}