我想根据某些变量的状态将文本“雇主信息”更改为其他名称。如何获得标题的参考,以便可以更改其文字?
<asp:Repeater ID="rptEmployers" runat="server">
<HeaderTemplate>
<table class="rotoTable1">
<caption class="rotoTableCaption1">Employer Info</caption>
</HeaderTemplate>
您需要使用转发器上的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;
}
}
您可以使用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>";
}
}