C# 在中继器内动态更新列标题
我想根据对象的类型更新列标题的文本。假设我有objectA和objectB;如果它是objectA,我希望它作为“版本”出现在我的第二列中。如果不是objectA(表示其objectB),则更新同一列,但使用“B版本”文本 我的.aspx文件中有:C# 在中继器内动态更新列标题,c#,asp.net,code-behind,C#,Asp.net,Code Behind,我想根据对象的类型更新列标题的文本。假设我有objectA和objectB;如果它是objectA,我希望它作为“版本”出现在我的第二列中。如果不是objectA(表示其objectB),则更新同一列,但使用“B版本”文本 我的.aspx文件中有: <asp:Repeater runat="server" ID="rptBillHeaders" OnItemDataBound="rptBillHeaders_ItemDataBound"> <HeaderTemplate
<asp:Repeater runat="server" ID="rptBillHeaders" OnItemDataBound="rptBillHeaders_ItemDataBound">
<HeaderTemplate>
<table width="98%" align="center" class="grid" cellpadding="0" cellspacing="0" style="border:solid 1px #000000; border-top:none 0px #FFFFFF;">
<tr class="gridHeaderRow">
<th> </th>
<th><asp:Label runat="server" ID="billVersionLabel" ></asp:Label></th>
<th>Action Type</th>
<th>Doc # </th>
<th>Status</th>
<th>Total Amount</th>
<th>Developed By</th>
<th>Date Submitted</th>
<th>Date Processed</th>
...
这可能很容易做到,但我正在学习ASP.NET。因此,我研究了如何开发它,这是我试图在解决方案中实现的
到目前为止,在运行web应用程序时,中没有出现任何更改
提前谢谢
NM您是否在方法中设置了断点并查看发生了什么?可能存在一些不同的问题,因此您需要精确地缩小代码中哪些部分没有达到预期效果。实际上,这条注释就是答案。你能在回答问题时提出同样的建议吗。我删除了断点,这使表能够正确填充。谢谢@adamheg。我很乐意,但我必须承认,我不确定删除断点将如何解决任何问题?!你是说程序卡在断点上了,一开始你没有注意到吗?我更新了我的问题,以准确地反映建议的更改,使标签可以被视为我想要的。总之,;必须将该控件指定为“rptBillHeaders.Controls[0]。Controls[0];”(两个零),并且不要在文本中放置标记。是否在该方法中放置断点并查看发生了什么?可能存在一些不同的问题,因此您需要精确地缩小代码中哪些部分没有达到预期效果。实际上,这条注释就是答案。你能在回答问题时提出同样的建议吗。我删除了断点,这使表能够正确填充。谢谢@adamheg。我很乐意,但我必须承认,我不确定删除断点将如何解决任何问题?!你是说程序卡在断点上了,一开始你没有注意到吗?我更新了我的问题,以准确地反映建议的更改,使标签可以被视为我想要的。总之,;控件必须指定为“rptBillHeaders.Controls[0].Controls[0];”(两个零),并且不要在文本中放置标记。
protected void rptBillHeaders_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
RepeaterItem item = e.Item;
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptLineItems = ((Repeater)item.FindControl("rptLineItems"));
rptLineItems.DataSource = currentBill.LineItemsByObjVersion[rowNumber].Sort(BillLineItem.SortColumn.LineItemNumber, System.Data.SqlClient.SortOrder.Ascending);
rptLineItems.DataBind();
rowNumber++;
}
Control HeaderTemplate = rptBillHeaders.Controls[0].Controls[0];
Label billVersionLabel = HeaderTemplate.FindControl("billVersionLabel") as Label;
if (lit.BillTypes.ObjA == "A")
{
billVersionLabel.Text = " A Version";
}
else if (lit.BillTypes.ObjB == "B")
{
billVersionLabel.Text = " B Version";
}
}