我无法获取数据列表内部的数据列表的索引。
我在DataList中有一个DataList。
要澄清图片:
<DataList ID="A">
<DataList ID="B">
</DataList>
</DataList>
我需要DataList B的Selected Index值,以便可以在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>
答案 0 :(得分:0)
DataList BDL = (DataList)e.Item.FindControl("B");
int Index = BDL.DataKeys[BDL.Item.ItemIndex].ToString();
我认为您对两个数据列表使用了相同的索引。这段代码可能对您来说是错误的,但是您的算法应如下所示:
答案 1 :(得分:0)
我只需要做
DataList BDL = e.Item.NamingContainer as DataList;