Как получить Selected Index из DataList (B), который находится внутри DataList (A)? - PullRequest
0 голосов
/ 23 марта 2019

Я не могу получить индекс DataList, который находится внутри DataList.

У меня есть DataList внутри DataList.

Для уточнения изображения:

<DataList ID="A">
         <DataList ID="B">
         </DataList>
   </DataList>

Мне нужно значение Selected Index для DataList B, чтобы я мог использовать его в таблице MySql.

Я пытался в CS получить значение индекса:

DataList BDL = (DataList)e.Item.FindControl("B");
int Index = BDL.DataKeys[e.Item.ItemIndex].ToString();

Но он всегда возвращал эту ошибку: System.NullReferenceException: 'Ссылка на объект не установлена ​​для экземпляра объекта.'

BDL был нулевым.

protected void BDataList_ItemCommand(object source, DataListCommandEventArgs e)
    {
                DataList BDL= (DataList)e.Item.FindControl("BDataList");
                int index = e.Item.ItemIndex;
                MyLabel.Text = "" + BDL.SelectedIndex;
    }




<DataList ID="A" OnItemDataBound="ADataList_ItemDataBound" OnItemCommand="ADataList_ItemCommand" DataKeyField="ID">
         <DataList ID="B" OnItemCommand="BDataList_ItemCommand" DataKeyField="ID">
         </DataList>
</DataList>

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

Это решило мою проблему: https://forums.asp.net/t/2154278.aspx?How+to+get+Selected+Index+from+DataList+B+that+is+inside+DataList+A+

Мне просто нужно было сделать

DataList BDL =    e.Item.NamingContainer as DataList;
0 голосов
/ 27 апреля 2019
DataList BDL = (DataList)e.Item.FindControl("B");
int Index = BDL.DataKeys[BDL.Item.ItemIndex].ToString();

Я думаю, что вы использовали один и тот же индекс для двух данных.Этот код может быть неправильным для вас, но ваш алгоритм должен выглядеть следующим образом:

  1. Получить выбранный второй Datalist
  2. Получить выбранное значение во втором списке
...