如何在 foreach 循环中找到页脚控件
How to find footer control in foreach loop
我有 Datalist,但无法在 foreach 循环中找到页脚控件。有帮助吗?
protected void btnactualapprove_Click(object sender, EventArgs e)
{
foreach (DataListItem dli in dtaddedOrderItem.Items)
{
DataList dtaddedsubserviceitem = (DataList)dli.FindControl("dtaddedsubserviceitem");
foreach (DataListItem subdli in dtaddedsubserviceitem.Items)
{
DataList dtsuggestedlist = (DataList)subdli.FindControl("dtsuggestedlist");
if (dtsuggestedlist != null)
{
// not comming inside
}
}
}
}
我无法找到 dtaddedsubserviceitem
数据列表页脚中的 dtsuggestedlist
。
在这里,我一直将 dtsuggestedlist
设为 null。
结构如下
Datalist dtaddedOrderItem start
<ItemTemplate>
Datalist dtsuggestedlist start
<ItemTemplate>
</ItemTemplate>
<FooterTemplate>
Datalist dtsuggestedlist start
Datalist dtsuggestedlist end
</FooterTemplate>
Datalist dtsuggestedlist end
</ItemTemplate>
Datalist dtaddedOrderItem end
我找不到位于 dtsuggestedlist 页脚的 dtsuggestedlist
简要
<asp:DataList ID="dtaddedOrderItem" runat="server">
<ItemTemplate>
<asp:DataList ID="dtaddedsubserviceitem" runat="server" >
<ItemTemplate>
</ItemTemplate>
<FooterTemplate>
<asp:DataList ID="dtsuggestedlist" runat="server" >
<ItemTemplate>
</ItemTemplate>
</asp:DataList>
</FooterTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
<asp:Button ID="btnactualapprove" OnClick="btnactualapprove_Click" />
试试这个:
foreach (DataListItem item in datalist1.Items)
{
if (item.ItemType == ListItemType.Footer)
{
Label lbl = (Label)item.FindControl("Label1");
}
}
使用以下修改后的代码:
DataListItem footer = (DataListItem)DataList1.Controls[DataList1.Controls.Count - 1];
你不能使用 foreach
因为它只会枚举类型为 Item
/AlternatingItem
的项目并跳过 header/footer 等。但是你可以使用Controls
.
这应该有效(通常):
DataListItem footer = (DataListItem)dataList.Controls[dataList.Controls.Count - 1];
这是嵌套数据列表的特殊情况:
protected void btnactualapprove_Click(object sender, EventArgs e)
{
foreach (DataListItem dli in dtaddedOrderItem.Items)
{
DataList dl = (DataList)dli.FindControl("dtaddedsubserviceitem");
DataListItem footer = (DataListItem)dl.Controls[dl.Controls.Count - 1];
DataList dtsuggestedlist = (DataList)footer.FindControl("dtsuggestedlist");
// ...
}
}
Can u answer me how to find header?
是:
DataListItem header = (DataListItem)dl.Controls[0];
要在单击的按钮上获取页脚模板,从 DataList 的 Controls
进行迭代,这将允许您检查 DataList 的页脚:
foreach (DataListItem item in dtaddedOrderItem.Items)
{
DataList dtaddedsubserviceitem = (DataList)item.FindControl("dtaddedsubserviceitem");
foreach(Control control in dtaddedsubserviceitem.Controls)
{
DataListItem item = (DataListItem)control;
if (item.ItemType == ListItemType.Footer)
{
DataList dtsuggestedlist = (DataList)footer.FindControl("dtsuggestedlist");
if(dtsuggestedlist != null)
{
// do your code here
}
}
}
}
我有 Datalist,但无法在 foreach 循环中找到页脚控件。有帮助吗?
protected void btnactualapprove_Click(object sender, EventArgs e)
{
foreach (DataListItem dli in dtaddedOrderItem.Items)
{
DataList dtaddedsubserviceitem = (DataList)dli.FindControl("dtaddedsubserviceitem");
foreach (DataListItem subdli in dtaddedsubserviceitem.Items)
{
DataList dtsuggestedlist = (DataList)subdli.FindControl("dtsuggestedlist");
if (dtsuggestedlist != null)
{
// not comming inside
}
}
}
}
我无法找到 dtaddedsubserviceitem
数据列表页脚中的 dtsuggestedlist
。
在这里,我一直将 dtsuggestedlist
设为 null。
结构如下
Datalist dtaddedOrderItem start
<ItemTemplate>
Datalist dtsuggestedlist start
<ItemTemplate>
</ItemTemplate>
<FooterTemplate>
Datalist dtsuggestedlist start
Datalist dtsuggestedlist end
</FooterTemplate>
Datalist dtsuggestedlist end
</ItemTemplate>
Datalist dtaddedOrderItem end
我找不到位于 dtsuggestedlist 页脚的 dtsuggestedlist
简要
<asp:DataList ID="dtaddedOrderItem" runat="server">
<ItemTemplate>
<asp:DataList ID="dtaddedsubserviceitem" runat="server" >
<ItemTemplate>
</ItemTemplate>
<FooterTemplate>
<asp:DataList ID="dtsuggestedlist" runat="server" >
<ItemTemplate>
</ItemTemplate>
</asp:DataList>
</FooterTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
<asp:Button ID="btnactualapprove" OnClick="btnactualapprove_Click" />
试试这个:
foreach (DataListItem item in datalist1.Items)
{
if (item.ItemType == ListItemType.Footer)
{
Label lbl = (Label)item.FindControl("Label1");
}
}
使用以下修改后的代码:
DataListItem footer = (DataListItem)DataList1.Controls[DataList1.Controls.Count - 1];
你不能使用 foreach
因为它只会枚举类型为 Item
/AlternatingItem
的项目并跳过 header/footer 等。但是你可以使用Controls
.
这应该有效(通常):
DataListItem footer = (DataListItem)dataList.Controls[dataList.Controls.Count - 1];
这是嵌套数据列表的特殊情况:
protected void btnactualapprove_Click(object sender, EventArgs e)
{
foreach (DataListItem dli in dtaddedOrderItem.Items)
{
DataList dl = (DataList)dli.FindControl("dtaddedsubserviceitem");
DataListItem footer = (DataListItem)dl.Controls[dl.Controls.Count - 1];
DataList dtsuggestedlist = (DataList)footer.FindControl("dtsuggestedlist");
// ...
}
}
Can u answer me how to find header?
是:
DataListItem header = (DataListItem)dl.Controls[0];
要在单击的按钮上获取页脚模板,从 DataList 的 Controls
进行迭代,这将允许您检查 DataList 的页脚:
foreach (DataListItem item in dtaddedOrderItem.Items)
{
DataList dtaddedsubserviceitem = (DataList)item.FindControl("dtaddedsubserviceitem");
foreach(Control control in dtaddedsubserviceitem.Controls)
{
DataListItem item = (DataListItem)control;
if (item.ItemType == ListItemType.Footer)
{
DataList dtsuggestedlist = (DataList)footer.FindControl("dtsuggestedlist");
if(dtsuggestedlist != null)
{
// do your code here
}
}
}
}