Как получить выбранный индекс из DataList (B), который находится внутри DataList (A)?

#c# #html #asp.net #datalist

#c# #HTML #asp.net #datalist

Вопрос:

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

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

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

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

Мне нужно выбранное значение индекса 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>
  

Комментарии:

1. Пожалуйста, мне нужна помощь с этой проблемой.

Ответ №1:

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

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

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

Ответ №2:

Это решило мою проблему: https://forums.asp.net/t/2154278.aspx ?Как получить Выбранный индекс из DataList B ,который находится внутри DataList A

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

 DataList BDL =    e.Item.NamingContainer as DataList;