C# 在现有行下方的网格视图中添加列表项检查值

C# 在现有行下方的网格视图中添加列表项检查值,c#,asp.net,C#,Asp.net,您好,我想在网格视图(Asp.net)中的现有行下面添加我的checkedboxList检查值。我如何才能做到这一点。这是我尝试过的代码,但没有正确添加 protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e) { // check view state is not null if (ViewState["MailTracking"] != null) {

您好,我想在网格视图(Asp.net)中的现有行下面添加我的checkedboxList检查值。我如何才能做到这一点。这是我尝试过的代码,但没有正确添加

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
    // check view state is not null  
    if (ViewState["MailTracking"] != null)
    {
        //get datatable from view state   
        dt = (DataTable)ViewState["MailTracking"];
        DataRow oItem = null;
        if (dt.Rows.Count > 0)
        {
            for (int i = 1; i <= dt.Rows.Count; i++)
            {
                oItem = dt.NewRow();
                string strValue = "";
                for (int k = 0; k < CheckBoxListBranch.Items.Count; k++)
                {
                    if (CheckBoxListBranch.Items[k].Selected)
                    {
                        strValue = CheckBoxListBranch.Items[k].Value;

                        oItem[0] = CheckBoxListBranch.Items[k].Text;
                    }
                }
            }
            //Remove initial blank row  
            if (dt.Rows[0][0].ToString() == "")
            {
                dt.Rows[0].Delete();
                dt.AcceptChanges();
            }
            dt.Rows.Add(oItem);
            ViewState["MailTracking"] = dt;
            GVDisplay.DataSource = dt;
            GVDisplay.DataBind();
        }
    }
}
protectedvoid CheckBoxList1\u SelectedIndexChanged(对象发送方,事件参数e)
{
//检查视图状态不为空
if(ViewState[“MailTracking”]!=null)
{
//从视图状态获取数据表
dt=(数据表)视图状态[“邮件跟踪”];
DataRow oItem=null;
如果(dt.Rows.Count>0)
{

对于(inti=1;i我想你指的是下面的代码语句

  oItem[0] = CheckBoxListBranch.Items[k].Text;
实际上,请注意,每次将元素添加/重新读取到行的第一列时,它都是
oItem[k]
else

oItem[k] = CheckBoxListBranch.Items[k].Text;
根据您的注释:在这种情况下,您应该将代码行
dt.Rows.Add(oItem);
移动到
for
循环中,如下所示

            for (int k = 0; k < CheckBoxListBranch.Items.Count; k++)
            {
                if (CheckBoxListBranch.Items[k].Selected)
                {
                    strValue = CheckBoxListBranch.Items[k].Value;
                    oItem[0] = CheckBoxListBranch.Items[k].Text;
                    dt.Rows.Add(oItem);
                }
            }
for(int k=0;k
我想你指的是下面的代码语句

  oItem[0] = CheckBoxListBranch.Items[k].Text;
实际上,请注意,每次将元素添加/重新读取到行的第一列时,它都是
oItem[k]
else

oItem[k] = CheckBoxListBranch.Items[k].Text;
根据您的注释:在这种情况下,您应该将代码行
dt.Rows.Add(oItem);
移动到
for
循环中,如下所示

            for (int k = 0; k < CheckBoxListBranch.Items.Count; k++)
            {
                if (CheckBoxListBranch.Items[k].Selected)
                {
                    strValue = CheckBoxListBranch.Items[k].Value;
                    oItem[0] = CheckBoxListBranch.Items[k].Text;
                    dt.Rows.Add(oItem);
                }
            }
for(int k=0;k
我只想添加和重新添加第一列,但要按行添加row@ChathurangaEdirisingha,如果有帮助,请参阅答案中的编辑。我只想添加和重新添加第一列,而不是按行添加row@ChathurangaEdirisingha,如果有帮助,请参阅答案中的编辑。