2

你能帮我解决这个问题吗,即使我在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") + ",";
        }
    }
}
4

2 回答 2

2

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

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

如果你不这样做,DataGridView即使它是一个PostBack. 这样,无论您检查什么,DataGridView都将从数据源重新填充您的回发。

使用上面的代码,当你这样做时if(!IsPostBack),它会保留复选框的视图状态值,你会得到正确的Checked状态。

于 2012-10-02T14:46:49.307 回答
0

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

ToolTip="<%#Container.DataItemIndex+1 %> " 然后下面是后面的代码

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;

}

于 2013-01-04T05:56:35.153 回答