如何获取标签的文本属性绑定到转发器项目模板并存储在会话变量中 [英] How Can I Get Text Property Of A Label Bound To Repeater Item Template And Store In A Session Variable

查看:67
本文介绍了如何获取标签的文本属性绑定到转发器项目模板并存储在会话变量中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello House,我还在RSS订阅源项目中,到目前为止,我非常感谢您的帮助。请我尝试在转发器项模板中获取Label的text属性并将值存储在会话变量中,以便我可以在另一个页面中使用它,我的代码似乎没有用完,这是我的代码:



 <   asp:转发器    ID   =  Repeater1    runat   =  server  

DataSourceID = XmlDataSource1 onitemdatabound = Repeater1_ItemDataBound >
< ItemTemplate >
< asp:HyperLink runat = server ID = TitleLabel1 NavigateUrl < span class =code-keyword> =' <%#string.Format( Default.aspx?News = {0},HttpUtility.UrlEncode(XPath( title)。ToString()))%> ' 文字 =' <% #XPath( 标题%> ' > < / asp:HyperLink > < span class =code-keyword>< br / >
<%#DateTime.Parse (XPath( pubDate)。ToString())。ToString( MMMM dd,yyyy%>
< span class =code-keyword>< asp:Label ID = Desc runa t = server 文本 =' <% #XPath( description%> ' style = display:none; > < / asp:标签 > < br / >
< hr style = 颜色:#0099ff; / > < br / >
< / ItemTemplate >
< / asp:Repeater >

< pre lang = cs >

protected void Repeater1_ItemDataBound(object sender,RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
label = e.Item.FindControl(& quot; Desc& quot;)as Label;
Session [ddd] = label.Text;
text = label.Text;
}
}


我怎样才能做到这一点?在此先感谢。

解决方案

您好mfon



您指定的是在 Repeater1_ItemDataBound 事件中标记会话值,

如果你在转发器中只有一个项目就可以了..

如果超过1项,那么,当然,转发器中的最后一项将保存在会话中。 (因为循环)

因此,如果您尝试访问另一页中的会话值,您将只获得最后一个值..



如果你需要数组或列表中的值,你可以使用它...

 List< string> lstLableValues =  new  List< string>(); 

protected void Repeater1_ItemDataBound( object sender,RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item .ItemType == ListItemType.AlternatingItem)
{
var label = e.Item.FindControl( Desc as 标签;
lstLableValues.Add(label.Text);
会话[ ddd] = lstLableValues;

}
} < / string > < / string >


Hello House, i am still on the rss feed project, i really appreciate your helps so far. Please i am trying to get text property of a Label in a repeater item template and store the value in a session variable so i could use it in another page, my code doesn't seem to work out, this is my code:

<asp:Repeater ID="Repeater1" runat="server"

             DataSourceID="XmlDataSource1" onitemdatabound="Repeater1_ItemDataBound" >
            <ItemTemplate>
                 <asp:HyperLink runat="server" ID="TitleLabel1" NavigateUrl='<%#string.Format("Default.aspx?News={0}", HttpUtility.UrlEncode(XPath("title").ToString()))%>' Text='<%#XPath("title")%>'></asp:HyperLink><br />
                 <%#DateTime.Parse(XPath("pubDate").ToString()).ToString("MMMM dd, yyyy")%>
                 <asp:Label ID ="Desc" runat="server" Text='<%#XPath("description")%>' style="display:none;"></asp:Label><br />
                 <hr style="color:#0099ff;" /><br />
            </ItemTemplate>
        </asp:Repeater>

<pre lang="cs">

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
   {
       if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
       {
           label = e.Item.FindControl(&quot;Desc&quot;) as Label;
           Session["ddd"] = label.Text;
           text = label.Text;
       }
   }


How can i achieve this? Thanks in advance.

解决方案

Hi mfon

you are assigning the label value to the Session in Repeater1_ItemDataBound event,
if you having only one item in the repeater it is fine..
if more than 1 item then, off-course the last item in the repeater will be saved in the session. ( because of looping)
so if you try to access the session value in another page you will get the last value only..

if you need the values in an array or list you can use this...

List<string> lstLableValues = new List<string>();

        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                var label = e.Item.FindControl("Desc") as Label; 
                lstLableValues.Add(label.Text);
                Session["ddd"] = lstLableValues;

            }
        }</string></string>


这篇关于如何获取标签的文本属性绑定到转发器项目模板并存储在会话变量中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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