C# 如何在viewstate中存储复选框值的多个值?

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

这是我的viewstate的代码。但它只存储一个值。我需要的是它将在复选框中保留选定的多个值。此方法用于在分页情况的gridview中保留/保留复选框的值

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;

}

尝试将其保存为逗号分隔字符串或其他格式。将内容保存在
列表中或
字典中,并将其保存在
视图状态中。