簡體   English   中英

數據列表中的datalist的項目數

[英]item count of datalist that is inside a datalist

我正試圖從位於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()

這就是我要這樣做的方法嗎?

這可以在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";
    }
}

也許仔細檢查你的語法......

如果您的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM