我试图从一个位于datalist中的datalist中获取项数。我想这就是我要做的,但是它返回了null。(为提高可读性而压缩的aspx代码)
<asp:DataList id="searchResultsProductDataList" runat="server" >
<asp:DataList ID="productDataList" runat="server">
</asp:DataList>
</asp:DataList>以下是代码隐藏
DataList resultnumberDL = (DataList)e.Item.FindControl("productDataList");
LiteralTest.Text = resultnumberDL.Items.Count.ToString()我也试过
DataList resultnumberDL = ((DataList)FindControl("productDataList"));
LiteralTest.Text = resultnumberDL.Items.Count.ToString()这就是我做这件事的方式,对吗?
发布于 2011-09-15 20:45:13
这可以在DataList1_ItemDataBound中像这样完成
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
Label PriceLabel = (Label)e.Item.FindControl("PriceLabel");
Label SalePrice = (Label)e.Item.FindControl("SalePrice");
//
// Do you calculations here ..
//
SalePrice.Text = "Your Final Value";
}
}发布于 2011-04-09 06:47:03
也许再仔细检查一下你的语法...
如果您的ASP.NET控件的结构如下:
<asp:DataList ID="dl1" runat="server" onitemdatabound="dl1_ItemDataBound">
<ItemTemplate>
...
<asp:DataList ID="dl2" runat="server" Enabled="true">
<ItemTemplate>
...
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>以及嵌套DataList的C#代码隐藏,如下所示:
protected void dl1_ItemDataBound(object sender, DataListItemEventArgs e)
{
DataList dl2 = (DataList)e.Item.FindControl("dl2");
... // load DataTable
dl2.DataSource = dt;
dl2.DataBind();
}在这种情况下,e.Item.FindControl("[id]")将查找嵌套的DataList
https://stackoverflow.com/questions/5601147
复制相似问题