如何使标题文本在TemplateField中动态显示?

时间:2018-08-14 13:43:43

标签: c# asp.net .net gridview

我有这个gridView:

<asp:GridView ItemType="WebUI.FeatureInfoArea.FeatureDesc" AutoGenerateColumns="false" ID="gvFeatList" runat="server" CssClass="table table-striped table-bordered table-hover pointer height-10">
    <Columns>
        <asp:TemplateField HeaderText="Title">
            <ItemTemplate>
                <%# Item.Title %>
                <span style="display: none;"><%# Item.UID %></span>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Tip">
            <ItemTemplate>
                <%# Item.Tip %>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

以下是将数据绑定到GridView控件的代码:

protected void Page_Load(object sender, EventArgs e)
{
    string alias_Title = blabla1;
    string alias_Tip = blabla2;

    var result = fim.getFeaturesList();
    gvFeatList.DataSource = result.featureDesc;
    gvFeatList.DataBind();
}

如您所见,我有一个名为featureDesc的属性,并将其绑定到数据源。

在Page_Load事件中,我还有两个变量,分别为alias_Titlealias_Tip

我需要显示alias_Title而不是标题,并显示alias_Tip而不是提示。

所以我的问题是,如何使TemplateFields中的HeaderText显示为变量alias_Titlealias_Tip

1 个答案:

答案 0 :(得分:1)

您可以在调用DataBind之后设置HeaderRow单元格的文本。

gvFeatList.DataBind();

gvFeatList.HeaderRow.Cells[0].Text = alias_Title;
gvFeatList.HeaderRow.Cells[1].Text = alias_Tip;