ASP.net Repeater如何更改标题模板标题服务器端?

问题描述 投票:0回答:2

我想根据某些变量的状态将文本“雇主信息”更改为其他名称。如何获得标题的参考,以便可以更改其文字?

<asp:Repeater ID="rptEmployers" runat="server">
  <HeaderTemplate>
    <table class="rotoTable1">
      <caption class="rotoTableCaption1">Employer Info</caption>
  </HeaderTemplate>
asp.net repeater
2个回答
0
投票

您需要使用转发器上的ItemDataBound事件来执行此操作,并使用runat=server更新字幕,以便您可以从后面的代码中对其进行操作。

<asp:Repeater ID="rptEmployers" OnItemDataBound="rptEmployers_ItemDataBound" runat="server">
  <HeaderTemplate>
    <table class="rotoTable1">
      <caption id="CaptionCtrl" runat="server" class="rotoTableCaption1">Employer Info</caption>
  </HeaderTemplate>

在文件的代码中,您将得到类似以下的内容:

protected void rptEmployers_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    switch (e.Item.ItemType)
    {
        case ListItemType.Header:

            HtmlGenericControl CaptionCtrl= (HtmlGenericControl) e.Item.FindControl("CaptionCtrl");
            CaptionCtrl.InnerHtml = "Your new text"

            break;
    }
}

0
投票

您可以使用Repeater的ItemDataBound。

<asp:Repeater ID="rptEmployers" runat="server" OnItemDataBound="rptEmployers_ItemDataBound">
    <HeaderTemplate>
        <table class="rotoTable1">
            <caption class="rotoTableCaption1">
                <asp:Literal ID="EmployerCaptionLabel" runat="server" Text="Employer Info"></asp:Literal>
            </caption>
    </HeaderTemplate>

在后面的代码中,将标题设置为所需的任何内容:

protected void rptEmployers_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Header)
    {
        var employerCaption = (Literal)e.Item.FindControl("EmployerCaptionLabel");
        employerCaption.Text = "<your caption here>";
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.