我无法获取DataList内的DataList的索引。
我在DataList中有一个DataList。
澄清图像:
<DataList ID="A">
<DataList ID="B">
</DataList>
</DataList>
我需要DataList B的Selected Index值,所以我可以在MySql表中使用它。
我在CS中尝试通过以下方式获取Index值:
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>
DataList BDL = (DataList)e.Item.FindControl("B");
int Index = BDL.DataKeys[BDL.Item.ItemIndex].ToString();
我认为你对两个datalist使用了相同的索引。这段代码对你来说可能不对,但你的算法应该是这样的:
我只是必须这样做
DataList BDL = e.Item.NamingContainer as DataList;