Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态表复选框不带“";勾选“;真值_C#_Asp.net_.net_Checkbox - Fatal编程技术网

C# 动态表复选框不带“";勾选“;真值

C# 动态表复选框不带“";勾选“;真值,c#,asp.net,.net,checkbox,C#,Asp.net,.net,Checkbox,我一直在使用ASP.NET开发一个web应用程序,代码库为C#。我有一个动态表,它根据SQL查询的返回调整大小;在每行的第三个单元格中添加复选框。复选框根据索引和日期分配ID 当用户点击submit按钮时,代码应该从选中的每一行中获取一个值。但是,在行中循环时,对于选中的属性,没有任何复选框的值为true。ID仍然存在,但复选框的值似乎丢失 用于添加复选框的代码: cell = new TableCell(); CheckBox cb = new CheckBox(); cell.App

我一直在使用ASP.NET开发一个web应用程序,代码库为C#。我有一个动态表,它根据SQL查询的返回调整大小;在每行的第三个单元格中添加复选框。复选框根据索引和日期分配ID

当用户点击submit按钮时,代码应该从选中的每一行中获取一个值。但是,在行中循环时,对于选中的属性,没有任何复选框的值为true。ID仍然存在,但复选框的值似乎丢失

用于添加复选框的代码:

cell = new TableCell();  
CheckBox cb = new CheckBox();  
cell.ApplyStyle(TS);  
cb.ID = index.ToString() + " " +  lstDate.SelectedItem.Text.ToString();  

if (reader["RestartStatus"].ToString() == "0")  
{  
     cb.Checked = false;  
     cb.Enabled = true;  
}  
else  
{  
     cb.Checked = true;  
}  
cell.Controls.Add(cb);  
获取复选框值的代码:

for (int i = 0; i < CompTable.Rows.Count; i++)  
{  
    int t3 = CompTable.Rows[i].Cells[2].Controls.Count;  
    Control temp = null;  
    if (t3 > 0)  
    {  
        temp = CompTable.Rows[i].Cells[2].Controls[0];  
    }  

    string t2 = i.ToString() + " " + lstDate.SelectedItem.Text.ToString();  
    if ( temp != null && ((CheckBox)temp).ID == i.ToString() + " " +   lstDate.SelectedItem.Text.ToString())  
    {  
        //Separated into 2 if statements for debugging purposes  
        //ID is correct, but .Checked is always false (even if all of the   boxes are checked)  
        if (((CheckBox)temp).Checked == true)  
        {  
            tlist.Add(CompTable.Rows[i].Cells[0].Text.ToString());  
        }  
    }  
}
for(int i=0;i0)
{  
temp=CompTable.Rows[i]。单元格[2]。控件[0];
}  
字符串t2=i.ToString()+“”+lstDate.SelectedItem.Text.ToString();
如果(temp!=null&((复选框)temp).ID==i.ToString()+“”+lstDate.SelectedItem.Text.ToString())
{  
//分为2个if语句,用于调试
//ID正确,但.Checked始终为false(即使选中了所有框)
if(((复选框)temp).Checked==true)
{  
tlist.Add(CompTable.Rows[i].Cells[0].Text.ToString());
}  
}  
}

动态控件没有值的最可能原因是,它们要么是在加载ViewState之后创建的,要么是在之前读取的

一般来说,动态控件应在PageInit事件期间创建,并在PageLoad事件期间或之后读取。

可能的重复: