在现有行下方的网格视图中添加列表项选中值
本文关键字:添加 列表 视图 网格 | 更新日期: 2023-09-27 18:08:22
嗨,我想添加我的checkedboxList复选值内网格视图(Asp.net),下面现有的行我怎么能做到这一点。这是我尝试的代码,但这是不正确的添加
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();
}
}
}
我的asp:CheckBoxList
ID是:CheckBoxListBranch
我在asp:CheckBoxList
里面用了onselectedindexchanged="CheckBoxList1_SelectedIndexChanged"
我想你是指下面的代码语句
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);
}
}