选择动态asp net复选框

时间:2018-03-22 07:24:32

标签: c# asp.net checkbox webforms

如果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;
               }

             }
        }

    }

我创建了一个存储过程,返回两个datatablestables0bind datagridtable1持有recordIds已经存在在database table selected or bit value (1)中可用。

我的问题在这里,当datagridvalue中找不到table1时,它会抛出exception'没有匹配的行'。我该如何解决这个exception

谢谢!

2 个答案:

答案 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;
        }
}