在Repeater

时间:2016-04-19 18:04:51

标签: c# asp.net code-behind

我想根据对象的类型更新列标题的文本。让我们说我有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>&nbsp</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

0 个答案:

没有答案