Я хочу сохранить ArrayList значение в ViewStateC# - Как сохранить ArrayList в ViewState?
Но я получаю сообщение об ошибке:
"Type 'System.Data.DataRow' in Assembly 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable"
Код:
private void bindGridView()
{
DbConnection.Open();
OleDbCommand DbCommand = new OleDbCommand("select emp_id,emp_name,father_name,gender,designation,department,location from emp_master", DbConnection);
OleDbDataAdapter Dbreader1 = new OleDbDataAdapter(DbCommand);
DataSet dsemer = new DataSet();
Dbreader1.Fill(dsemer);
ArrayList arrList = new ArrayList();
foreach (DataRow dtRow in dsemer.Tables[0].Rows)
{
arrList.Add(dtRow);
}
//Here getting an error
ViewState["ds"] = arrList;
EmpMasterGrid.DataSource = dsemer;
EmpMasterGrid.DataBind();
DbConnection.Close();
}
Почему мне нужно хранить ArrayList в ViewState?
С помощью этого ViewState я экспортировать выбранный столбец GridView, чтобы преуспеть, используя приведенный ниже код
private void GetCheckBoxStates()
{
CheckBox chkCol0 = (CheckBox)EmpMasterGrid.HeaderRow.Cells[0]
.FindControl("chkCol0");
CheckBox chkCol1 = (CheckBox)EmpMasterGrid.HeaderRow.Cells[0]
.FindControl("chkCol1");
CheckBox chkCol2 = (CheckBox)EmpMasterGrid.HeaderRow.Cells[0]
.FindControl("chkCol2");
CheckBox chkCol3 = (CheckBox)EmpMasterGrid.HeaderRow.Cells[0]
.FindControl("chkCol3");
CheckBox chkCol4 = (CheckBox)EmpMasterGrid.HeaderRow.Cells[0]
.FindControl("chkCol4");
CheckBox chkCol5 = (CheckBox)EmpMasterGrid.HeaderRow.Cells[0]
.FindControl("chkCol5");
CheckBox chkCol6 = (CheckBox)EmpMasterGrid.HeaderRow.Cells[0]
.FindControl("chkCol6");
ArrayList arr;
if (ViewState["ds"] == null)
{
arr = new ArrayList();
}
else
{
arr = (ArrayList)ViewState["ds"];
}
arr.Add(chkCol0.Checked);
arr.Add(chkCol1.Checked);
arr.Add(chkCol2.Checked);
arr.Add(chkCol3.Checked);
arr.Add(chkCol4.Checked);
arr.Add(chkCol5.Checked);
arr.Add(chkCol6.Checked);
ViewState["ds"] = arr;
}
Любые идеи? Заранее спасибо. Отредактировано!
Спасибо за ваши усилия, бушель еще я получаю ошибку – user2500094
Как добавить набор данных значения вместо этого arraylist в строке ниже arr.Add (chkCol0.Checked); – user2500094