我有一个ASP.NET应用程序并使用ListView
。此ListView
有一个LayoutTemplate
,ItemTemplate
和一个AlternatingItemTemplate
。在我的LayoutTemplate
我LinkLabels
。我想创建一个多语言页面,我必须访问此Text
的{{1}}属性。但我无法访问此属性。
我的ASPX(ListView)
Linklabels
我的C#代码:
<LayoutTemplate>
<table id="UserTable" runat="server" border="0">
<tr id="Tr1" style="background-color:#E5E5FE">
<th runat="server"><asp:LinkButton ID="lnkBenutzer" runat="server" >id_Benutzer</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkemail" runat="server" >id_Email</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkVorname" runat="server" >id_Vorname</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkNachname" runat="server" >id_Nachname</asp:LinkButton></th>
<th runat="server"><asp:LinkButton ID="lnkTelefon" runat="server" >id_Telefon</asp:LinkButton></th>
</tr>
<tr runat="server" id="ItemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td align="left" ><asp:Label ID="Label1" Text='<%# Eval("Benutzername") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label4" Text='<%# Eval("Nachname") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label5" Text='<%# Eval("Telefonnummer") %>' runat="server" /></td>
<td align="left"><asp:Button ID="Button1" Text="Anzeigen" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label6" Text='<%# Eval("GUID") %>' runat="server" Visible="False" /></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color:#EFEFEF">
<td align="left" ><asp:Label ID="Label1" Text='<%# Eval("Benutzername") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label4" Text='<%# Eval("Nachname") %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label5" Text='<%# Eval("Telefonnummer") %>' runat="server" /></td>
<td align="left"><asp:Button ID="Button1" Text="Anzeigen" OnCommand="Button1_Command" CommandName="Select" CommandArgument='<%# Container.DataItemIndex %>' runat="server" /></td>
<td align="left"><asp:Label ID="Label6" Text='<%# Eval("GUID") %>' runat="server" Visible="False" /></td>
</tr>
</AlternatingItemTemplate>
我的按钮:
if (lang == "de")
{
string xmlfile= "de_language.xml";
//GetXMLElement() is my Method
id_SearchUser.Text = GetXMLElement(xmlfile, "id_SearchUser");
id_location.Text = GetXMLElement(xmlfile, "id_location");
Button2.Text = GetXMLElement(xmlfile, "id_Search");
//I must access to the text property
//lnkBenutzer.text = GetXMLElement(xmlfile, "User");
}
答案 0 :(得分:2)
我认为在代码背后会有类似的内容:
LinkButton lb = myListView.FindControl("lnkBenutzer") as LinkButton;
lb.Text = GetXMLElement(xmlfile, "user");
尚未测试
答案 1 :(得分:1)
我相信你需要做以下事情:
在你的Benutzer.aspx中:
public void Page_Load() {
string xmlfile = Session["language_file"].ToString();
LinkButton lnkBenutzer = (LinkButton)myListView.FindControl("lnkBenutzer");
lnkBenutzer.Text = GetXMLElement(xmlfile, "User");
}
简而言之,您需要做的是“查找”列表视图控件,然后在列表视图中找到控件。这可以缩短为:
((LinkButton)myListView.FindControl("lnkBenutzer")).Text = GetXMLElement(xmlfile, "User");
更进一步,您可以将其提取到一个方法,其中传递您的项目名称和新文本:
public void SetText(string controlName, string text)
{
((LinkButton)myListView.FindControl(controlName)).Text = text;
}
然后你可以打电话:
SetText("lnkBenutzer", GetXMLElement(xmlfile, "User"));
根据需要更换您的姓名和名称。