【问题标题】:item count of datalist that is inside a datalist数据列表中的数据列表的项目计数
【发布时间】:2011-09-16 15:15:12
【问题描述】:

我正在尝试从位于数据列表中的数据列表中获取项目计数。我以为这就是我会做的,但它返回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()

这就是我要这样做的正确方式吗?

【问题讨论】:

  • 在哪里进行计数?负载?预渲染?此外,子 DataList 应该进入 ItemTemplate 标记
  • 我知道它应该进入 itemtemplate 标签,它是。为了便于阅读,我删除了一些代码。正在对ItemDataBound 进行计数。
  • 你是如何DataBinding子DataList控件的?

标签: c# .net asp.net datalist


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    也许仔细检查你的语法...

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

    你的 C# 代码隐藏在嵌套的 DataList 中,如下所示:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多