我想根据对象的类型更新列标题的文本。让我们说我有objectA和objectB;如果它是objectA我希望它出现在我的第二列中作为" A Version"。如果它不是objectA(意思是它的objectB),那么用"更新同一列。 B版"文本。
我的.aspx文件中有:
<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>
...
在我的代码隐藏中,我有:
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";
}
}
这可能很容易,但我正在学习ASP.NET。因此,我研究了如何开发它,这就是我试图在我的解决方案中实现的tutorial。
到目前为止,我在运行Web应用程序时没有出现任何更改。
提前致谢。
NM