如何访问到"文本"一个ListView控件LayoutTemplate模板的属性 [英] How I can access to the "Text" Property of a ListView LayoutTemplate Control

查看:118
本文介绍了如何访问到"文本"一个ListView控件LayoutTemplate模板的属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个ASP.NET应用程序,并使用的ListView 。这的ListView 有一个 LayoutTemplate模板的ItemTemplate AlternatingItemTemplate 。在我的 LayoutTemplate模板 LinkLabels 。我想打一个多语言页面,我必须访问文本的这种特性 Linklabels 。但我不能够访问此属性。

我的ASPX(ListView控件)

 <&LayoutTemplate模板GT;
    <表ID =用户表=服务器BORDER =0>
        < TR ID =TR1的风格=背景色:#E5E5FE>
            百分位=服务器>< ASP:LinkBut​​ton的ID =lnkBenutzer=服务器> id_Benutzer< / ASP:LinkBut​​ton的>< /第i
            百分位=服务器>< ASP:LinkBut​​ton的ID =lnkemail=服务器> id_Email< / ASP:LinkBut​​ton的>< /第i
            百分位=服务器>< ASP:LinkBut​​ton的ID =lnkVorname=服务器> id_Vorname< / ASP:LinkBut​​ton的>< /第i
            百分位=服务器>< ASP:LinkBut​​ton的ID =lnkNachname=服务器> id_Nachname< / ASP:LinkBut​​ton的>< /第i
            百分位=服务器>< ASP:LinkBut​​ton的ID =lnkTelefon=服务器> id_Telefon< / ASP:LinkBut​​ton的>< /第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作品:(
                ((LinkBut​​ton的)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()。
    LinkBut​​ton的lnkBenutzer =(LinkBut​​ton的)myListView.FindControl(lnkBenutzer);
    lnkBenutzer.Text = GetXMLElement(XMLFILE,用户);
}

总之你需要做的是发现列表视图控件,然后找到列表视图中控制什么。这可以缩短为:

 ((LinkBut​​ton的)myListView.FindControl(lnkBenutzer))文本= GetXMLElement(XMLFILE,用户)。

更进一步,其中您在您的项目名称传递,你可以解压到一个方法的新案文:

 公共无效的setText(字符串控件名称,字符串文本)
{
    ((LinkBut​​ton的)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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆