更改嵌套在中继器中的网格视图的行数据中的标题文本
本文关键字:数据 标题 文本 视图 嵌套 中继器 网格 | 更新日期: 2023-09-27 18:34:22
我有一个嵌套在中继器内的网格视图,我想更改行数据绑定或通过的网格视图列的标题文本
<HeaderTemplate>
<asp:Label runat="server" ID="lblMode" Text='<%# Eval("IsValidForPromoCode")%>'>
</asp:Label></HeaderTemplate>
以方便者为准。
.aspx页
<asp:Repeater ID="repRequest" runat="server" OnItemDataBound="repRequest_ItemDataBound">
<ItemTemplate>
<table style="width: 100%; font-weight: bold;" cellpadding="5" cellspacing="0">
<tr>
<td colspan="12" align="right">
<a id="aSetPreference" runat="server" href="#">Attached Document(s)-</a>
<asp:Label ID="lblDocumentCount" CssClass="redFont" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td align="left" class="gray-bg" style="width: 8%;">
<b>Request#:</b>
</td>
<td style="width: 100px;">
<span class="detail-info-color">
<%# Eval("RequestNumber")%></span>
</td>
<td align="left" class="gray-bg" style="width: 5%;">
<asp:Label ID="lblreqDetID" runat="server" Visible="false" Text='<%# Bind("TravelDetailsID") %>'></asp:Label>
<b>Date:</b>
</td>
<td align="left" class="gray-bg" style="width: 5%;">
<b>Class:</b>
</td>
<td>
<span class="detail-info-color">
<%# Eval("Class")%></span>
</td>
</tr>
<tr>
<td colspan="12">
<asp:GridView ID="gvOption" CssClass="gridRow" runat="server" AutoGenerateColumns="False"
Width="100%" OnRowDataBound="gvOption_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="#">
<ItemTemplate>
<%#Container.DataItemIndex+1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Service Provider">
<ItemTemplate>
<asp:Label ID="txtNumber" runat="server" Width="80px" Text='<%# Bind("Number") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<asp:Label runat="server" ID="lblMode" Text='<%# Eval("IsValidForPromoCode") %>'></asp:Label></HeaderTemplate>
<ItemTemplate>
<asp:Label ID="txtName" runat="server" Width="100px" Text='<%# Bind("Name") %>'></asp:Label>
<asp:Label ID="lblOptionID" Visible="false" runat="server" Width="100px" Text='<%# Bind("optionID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
代码隐藏
protected void gvOption_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
GridView gvOption = (GridView)sender;
if (e.Row.RowType == DataControlRowType.DataRow)
{
gvOption.Columns[1].HeaderText = "Last Name";
}
if (e.Row.RowType == DataControlRowType.Header)
{
gvOption.Columns[2].HeaderText = "Last Name";
}
}
catch (Exception ex)
{
throw ex;
}
}
无论我以哪种方式做,它都没有效果。请建议我缺少什么。
试试这个:-
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[1].Text = "Last Name";
}
在这里,我已经硬编码了您需要相应地更改它的Cells
值。
更新:-
在RowDataBound
中找到控制:-
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label txtNumber = (Label)e.Row.FindControl("txtNumber");
txtNumber.ForeColor = System.Drawing.Color.Red;
}