如何访问到"文本"一个ListView控件LayoutTemplate模板的属性 [英] How I can access to the "Text" Property of a ListView LayoutTemplate Control
问题描述
我有一个ASP.NET应用程序,并使用的ListView
。这的ListView
有一个 LayoutTemplate模板
,的ItemTemplate
和 AlternatingItemTemplate
。在我的 LayoutTemplate模板
我 LinkLabels
。我想打一个多语言页面,我必须访问文本
的这种特性 Linklabels
。但我不能够访问此属性。
我的ASPX(ListView控件)
<&LayoutTemplate模板GT;
<表ID =用户表=服务器BORDER =0>
< TR ID =TR1的风格=背景色:#E5E5FE>
百分位=服务器>< ASP:LinkButton的ID =lnkBenutzer=服务器> id_Benutzer< / ASP:LinkButton的>< /第i
百分位=服务器>< ASP:LinkButton的ID =lnkemail=服务器> id_Email< / ASP:LinkButton的>< /第i
百分位=服务器>< ASP:LinkButton的ID =lnkVorname=服务器> id_Vorname< / ASP:LinkButton的>< /第i
百分位=服务器>< ASP:LinkButton的ID =lnkNachname=服务器> id_Nachname< / ASP:LinkButton的>< /第i
百分位=服务器>< ASP:LinkButton的ID =lnkTelefon=服务器> id_Telefon< / ASP:LinkButton的>< /第i
< / TR>
< TR =服务器ID =ItemPlaceholder>
< / TR>
< /表>
< / LayoutTemplate模板><&ItemTemplate中GT; &所述; TR> < TD align =left>< ASP:标签ID =Label1的文本='<%#的eval(Benutzername)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =Label2的文本='<%#的eval(电子邮件)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =LABEL3文本='<%#的eval(Vorname)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =Label4文本='<%#的eval(Nachname)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =Label5文本='<%#的eval(Telefonnummer)%>' =服务器/>< / TD> < TD align =left>< ASP:按钮的ID =Button1的文本=Anzeigen按需=Button1_Command的CommandName =选择CommandArgument ='<%#Container.DataItemIndex%GT;' =服务器/>< / TD> < TD align =left>< ASP:标签ID =Label6文本='<%#的eval(GUID)%>' =服务器可见=FALSE/>< / TD>
< / TR>< / ItemTemplate中>< AlternatingItemTemplate> < TR风格=背景色:#EFEFEF> < TD align =left>< ASP:标签ID =Label1的文本='<%#的eval(Benutzername)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =Label2的文本='<%#的eval(电子邮件)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =LABEL3文本='<%#的eval(Vorname)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =Label4文本='<%#的eval(Nachname)%>' =服务器/>< / TD>
< TD align =left>< ASP:标签ID =Label5文本='<%#的eval(Telefonnummer)%>' =服务器/>< / TD> < TD align =left>< ASP:按钮的ID =Button1的文本=Anzeigen按需=Button1_Command的CommandName =选择CommandArgument ='<%#Container.DataItemIndex%GT;' =服务器/>< / TD> < TD align =left>< ASP:标签ID =Label6文本='<%#的eval(GUID)%>' =服务器可见=FALSE/>< / TD> < / TR>< / AlternatingItemTemplate>
我的C#code:
如果(郎==德)
{
字符串XMLFILE =de_language.xml;
// GetXMLElement()是我的方法
id_SearchUser.Text = GetXMLElement(XMLFILEid_SearchUser);
id_location.Text = GetXMLElement(XMLFILEid_location);
Button2.Text = GetXMLElement(XMLFILEid_Search); //我必须进入文本属性
//lnkBenutzer.text = GetXMLElement(XMLFILE,用户);
}
我的按钮:
保护无效Button1_Command(对象发件人,CommandEventArgs E)
{
如果(e.CommandName ==选择)
{
//明镜指数DER Zeile wird ermitellt
INT指数= Convert.ToInt32(e.CommandArgument); 字符串XMLFILE =会话[language_file]的ToString()。
//它doen't作品:(
((LinkButton的)myListView.FindControl(lnkBenutzer))文本= GetXMLElement(XMLFILEid_User); //明镜Inhalt(GUID [Unsichtbar])wird AUS DER zeile MIT数字高程模型指数herausgezogen UNDübergeben 标签LB =(标签)myListView.Items [指数] .FindControl(Label6); //明镜GUID,Benutzer-UND Nachname DAS WERK werden的EINE会议übergeben
会话[用户名] = lb.Text;
会话[SearchUser] = txtBenutzer.Text;
会话[DropDownValue] = dropWerk.SelectedValue; //居wird EINE NEUE网络表单geöffnet
的Response.Redirect(Benutzer.aspx); } }
我相信你需要做类似如下:
在您Benutzer.aspx:
公共无效的Page_Load(){
字符串XMLFILE =会话[language_file]的ToString()。
LinkButton的lnkBenutzer =(LinkButton的)myListView.FindControl(lnkBenutzer);
lnkBenutzer.Text = GetXMLElement(XMLFILE,用户);
}
总之你需要做的是发现列表视图控件,然后找到列表视图中控制什么。这可以缩短为:
((LinkButton的)myListView.FindControl(lnkBenutzer))文本= GetXMLElement(XMLFILE,用户)。
更进一步,其中您在您的项目名称传递,你可以解压到一个方法的新案文:
公共无效的setText(字符串控件名称,字符串文本)
{
((LinkButton的)myListView.FindControl(控件名称))文本=文本。
}
,那么你可以拨打:
的setText(lnkBenutzer,GetXMLElement(XMLFILE,用户));
替换为你需要的名字和瓦莱斯。
I have a ASP.NET Application and use a ListView
. This ListView
has a LayoutTemplate
,ItemTemplate
and a AlternatingItemTemplate
. In My LayoutTemplate
I have LinkLabels
. I want to make a Multilanguage Page and I must access to The Text
Property of this Linklabels
. But I don't can access to this Property.
My ASPX (ListView)
<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>
My C# code:
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");
}
My Button:
protected void Button1_Command(object sender, CommandEventArgs e)
{
if (e.CommandName == "Select")
{
//Der Index der Zeile wird ermitellt
int index = Convert.ToInt32(e.CommandArgument);
string xmlfile = Session["language_file"].ToString();
//it doen't works :(
((LinkButton)myListView.FindControl("lnkBenutzer")).Text = GetXMLElement(xmlfile, "id_User");
//Der Inhalt (GUID[Unsichtbar]) wird aus der zeile mit dem Index herausgezogen und übergeben
Label lb = (Label)myListView.Items[index].FindControl("Label6");
//Der GUID, Benutzer-Nachname und das Werk werden an eine Session übergeben
Session["UserID"] = lb.Text;
Session["SearchUser"] = txtBenutzer.Text;
Session["DropDownValue"] = dropWerk.SelectedValue;
//Es wird eine neue Webform geöffnet
Response.Redirect("Benutzer.aspx");
}
}
I believe you need to do something like the following:
In your Benutzer.aspx:
public void Page_Load() {
string xmlfile = Session["language_file"].ToString();
LinkButton lnkBenutzer = (LinkButton)myListView.FindControl("lnkBenutzer");
lnkBenutzer.Text = GetXMLElement(xmlfile, "User");
}
In short what you need to do is "find" the list view control and then find the control inside the list view. This could be shortened to:
((LinkButton)myListView.FindControl("lnkBenutzer")).Text = GetXMLElement(xmlfile, "User");
Going further you could extract this to a method wherein you pass in your item name and the new text :
public void SetText(string controlName, string text)
{
((LinkButton)myListView.FindControl(controlName)).Text = text;
}
then you could call:
SetText("lnkBenutzer", GetXMLElement(xmlfile, "User"));
replacing your names and vales as required.
这篇关于如何访问到&QUOT;文本&QUOT;一个ListView控件LayoutTemplate模板的属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!