我是ASP的新手,并希望获得一些关于如何在我的Code Behind中访问文字然后将其更改为传入参数文本的指导。
我有一个resources.ascx文件,显示人员列表(从数据库中提取)。这工作正常,它看起来像这样:
全名
:(888-888-8888)
F:(888-888-8888)
然而,问题是我现在希望它有条件地说"免费电话"而不是" F:"一页。
在 people.aspx 页面中,我传入"免费电话"到资源:
<%@ Register Src="~/UserControls/resources.ascx" TagName="Resources" TagPrefix="ucResources" %>
<ucResources:Resources ID="Resources1" FaxNumberAlias="Toll Free" runat="server" />
resources.ascx 转发器将数据库中的所有人输出到页面。
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div class="sectioncontent">
<b><%#Eval("EmployeeFirstName")%> <%#Eval("EmployeeLastName)%></b>
T: <%#Eval("Phone")%>
<br>
<asp:Literal runat="server" ID="FaxNumberLabel">F:</asp:Literal> <%#Eval("Fax")%><br>
</div>
<br />
</ItemTemplate>
在 resources.ascx.vb 文件中,我想做类似的事情,但FaxNumberLabel(我在resources.ascx中声明的文字)是不可访问的或者没有被访问过声明。
Public Property FaxNumberAlias() As String
Get
Return _FaxNumberAlias
End Get
Set(ByVal value As String)
_FaxNumberAlias = value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not String.IsNullOrEmpty(_FaxNumberAlias) Then
FaxNumberLabel.Text = _FaxNumberAlias
End If
PopulateRepeater()
End Sub
我错过了将文字连接到后面的代码?
答案 0 :(得分:1)
问题是Literal
位于Repeater
内,所以你可能会有很多。{1}}。最好的方法是在转发器的OnDataItemBound
事件中访问它们:
Protected Sub Repeater1_OnDataItemBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles Repeater1.OnDataItemBound
If (e.Item.ItemType = ListItemType.Item) Or _
(e.Item.ItemType = ListItemType.AlternatingItem) Then
Dim litFaxNumberLabel As Literal = e.Item.FindControl("FaxNumberLabel")
litFaxNumberLabel.Text = _FaxNumberAlias
End If
End Sub
注意:请原谅任何错误的语法,自从我触及VB以来已经超过4年了!
答案 1 :(得分:0)
您可以像这样使用 -
protected void DataDisplay_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
LinkButton lit = (LinkButton)e.Item.FindControl("LinkButton2");
if (lit.Text == "0")
{
int a = Convert.ToInt32(lit.Text);
if (a == 0)
{
if (a == 0)
{
lit.Text = "Your Text";
}
}
}
}
}