如果checkbox
包含datagrid
中匹配的datagrid
,我想动态选择value
dataset
。当用户选择datagrid
的值时,我绑定dropdownlist
。
为实现这一点,我写了以下代码。
protected void dgAvailableCandidates_ItemDataBound(object sender, DataGridItemEventArgs e)
{
DataSet dsSelectedCandidates = (DataSet)Session["SelectedCandidatesDataSet"];
if (dsSelectedCandidates.Tables[1].Rows.Count > 0)
{
for (int i = 0; i < dgAvailableCandidates.Items.Count; i++)
{
string indRow = dgAvailableCandidates.DataKeys[i].ToString();
if (indRow == dsSelectedCandidates.Tables[1].Rows[i]["fk_recId"].ToString())
{
CheckBox shouldCheck = (CheckBox)dgAvailableCandidates.Items[i].FindControl("chkbox_SelectCandidate");
shouldCheck.Checked = true;
}
}
}
}
我创建了一个存储过程,返回两个datatables
,tables0
到bind
datagrid
,table1
持有recordIds
已经存在在database table
selected or bit value (1)
中可用。
我的问题在这里,当datagrid
在value
中找不到table1
时,它会抛出exception
'没有匹配的行'。我该如何解决这个exception
谢谢!
答案 0 :(得分:0)
我使用telerik网格完成了我的工作。
D
答案 1 :(得分:0)
在从索引访问行之前,必须添加以下条件以检查行的存在。
// This condition will check the existence of row before accessing its value.
if(dsSelectedCandidates.Tables[1].Rows.Count > i)
{
if (indRow == dsSelectedCandidates.Tables[1].Rows[i]["fk_recId"].ToString())
{
CheckBox shouldCheck = (CheckBox)dgAvailableCandidates.Items[i].FindControl("chkbox_SelectCandidate");
shouldCheck.Checked = true;
}
}