как передать arraylist для переключения заявления - PullRequest
0 голосов
/ 07 апреля 2011

я хочу передать arraylist для переключения оператора, ниже код:

 protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{

     ArrayList myList = new ArrayList();
    foreach (ListItem listitem in CheckBoxList1.Items)
    {
        if (listitem.Selected)
            myList.Add(listitem.Value);

    }

    ViewState["myList"] = myList;

    CurrentPage = 0;
    BindGrid();


}
 private void BindGrid()
{

    DataTable dt = null;

    switch (ViewState["myList"]) //gives an error
    { case myList[1]:  dt = caravans.GetSelectedFilter(myList); break;
    default:  dt = caravans.GetAllCaravans(); break;

    pds.DataSource = dt.DefaultView;
    pds.AllowPaging = true;
    pds.PageSize = 12;//add the page index when item exceeds 12     //Convert.ToInt16(ddlPageSize.SelectedValue);
    pds.CurrentPageIndex = CurrentPage;
    DataList1.RepeatColumns = 4; // 4 items per line
    DataList1.RepeatDirection = RepeatDirection.Horizontal;

    DataList1.DataSource = pds;
    DataList1.DataBind();

 //   lnkbtnNext.Enabled = !pds.IsLastPage;
    ImageButton2.Enabled = !pds.IsLastPage;
   // lnkbtnPrevious.Enabled = !pds.IsFirstPage;

    doPaging();

}

1 Ответ

0 голосов
/ 07 апреля 2011

Из MSDN:

Управляющий тип оператора switch устанавливается выражением switch. Если типом выражения-переключателя является sbyte, byte, short, ushort, int, uint, long, ulong, char, string или enum-type, то это является определяющим типом оператора switch. В противном случае должно существовать ровно одно пользовательское неявное преобразование (раздел 6.4) из типа выражения switch в один из следующих возможных управляющих типов: sbyte, byte, short, ushort, int, uint, long, ulong, char, string , Если такого неявного преобразования не существует или существует более одного такого неявного преобразования, возникает ошибка времени компиляции.

Заявление о переключении

...