C# 如何在viewstate中存储复选框值的多个值?
这是我的viewstate的代码。但它只存储一个值。我需要的是它将在复选框中保留选定的多个值。此方法用于在分页情况的gridview中保留/保留复选框的值C# 如何在viewstate中存储复选框值的多个值?,c#,asp.net,C#,Asp.net,这是我的viewstate的代码。但它只存储一个值。我需要的是它将在复选框中保留选定的多个值。此方法用于在分页情况的gridview中保留/保留复选框的值 public void chkAssignee_OnCheckedChanged(object sender, EventArgs e) { CheckBox selectBox = (CheckBox)sender; GridViewRow myRow = (GridViewRow)select
public void chkAssignee_OnCheckedChanged(object sender, EventArgs e)
{
CheckBox selectBox = (CheckBox)sender;
GridViewRow myRow = (GridViewRow)selectBox.Parent.Parent; // the row
GridView myGrid = (GridView)myRow.Parent.Parent; // the gridview
string ID = myGrid.DataKeys[myRow.RowIndex].Value.ToString();
GridViewRow rowSelect = (GridViewRow)selectBox.Parent.Parent;
int a = rowSelect.RowIndex;
ViewState["id"] = ID;
}
试着跟随
下面的代码可能对您有所帮助。
public void chkAssignee_OnCheckedChanged(object sender, EventArgs e)
{
CheckBox selectBox = (CheckBox)sender;
GridViewRow myRow = (GridViewRow)selectBox.Parent.Parent; // the row
GridView myGrid = (GridView)myRow.Parent.Parent; // the gridview
string ID = myGrid.DataKeys[myRow.RowIndex].Value.ToString();
GridViewRow rowSelect = (GridViewRow)selectBox.Parent.Parent;
int a = rowSelect.RowIndex;
ArrayList SelecterdRowIndices=new ArrayList();
if(ViewState["SelectedRowIndices"]!=null)
{
SelecterdRowIndices=(ArrayList)ViewState["SelectedRowIndices"];
bool flag=false;
foreach (int i in SelecterdRowIndices)
{
if(i==Convert.ToInt32(ID))
{
flag=true;
break;
}
}
if(!flag)
{
SelecterdRowIndices.Add(ID);
}
}
else
{
SelecterdRowIndices.Add(ID);
}
ViewState["SelectedRowIndices"] = SelecterdRowIndices;
}
尝试将其保存为逗号分隔字符串或其他格式。将内容保存在列表中或字典中,并将其保存在视图状态中。