你好,打扰你了,因为看了一个你的回贴,认为你肯定很精通,所以打扰你
我的代码是这样的
<ItemTemplate>
 <asp:Label   runat="server"   id="title"   Text='<%# DataBinder.Eval(Container.DataItem,"TITLE") %>' />
 <asp:Label   runat="server"   id="naiyo"   Text='<%#DataBinder.Eval(Container.DataItem, "text")%>' />
 <asp:LinkButton ID="LinkButton2" Runat="server" Font-Size ="8PX"  CommandName="moreinfor"  >
全文表示</asp:LinkButton><br>
 </ItemTemplate>
我想在vb.net里取得'TITLE'的值给session,但是看了好多方法就是不对,请你指教!谢谢!

解决方案 »

  1.   

    Session["title"]= ((Label)datalist.FindControl('title')).Text;
      
      
      
      
     
     =====================================================
    ◆◆◆写真,混血名模,Leah Dizon,各阶段写真40套,1787枚,完全版 ◆◆◆
    =====================================================
      

  2.   

    这个方法我试了,说(label)不是有效的语句,我用的是vb.net,难道跟语言有关系?
      

  3.   

    那是C#的代码。
    也就是将找到的控件转换为LABEL。你自己改成VB的就可以了吧
      

  4.   

    Label lb=datalist.FindControl('title') as LabelSession("title")= lb.Text呵呵,不知道vb.net中是不是这样写
      

  5.   

    好像不行耶,Label lb=这种写法好像不行
      

  6.   

    dim lb as label;
    lb = datalist.FindControl('title') as Label ;这样?
      

  7.   

    datalist.SelectedItem.FindControl("title") as System.Web.UI.WebControls.Label
      

  8.   

    55,这样也不行啊,lb = datalist.SelectedItem`.FindControl('title') 这样又发生例外错误,好像没有这个值似的.
      

  9.   

    都乱说去吧..我对这论坛上的人已经没想法了...
    用这个来找到对控件的引用:
    dim l as Label=DataList1.Items(index).FindControl("title")
      

  10.   

    我觉得楼上的办法应该是可行的,可是我执行的时候还是例外错误,我想是不是因为<ItemTemplate> 在循环的关系阿?
    因为我是在点击[全文表示]这个链接的地方写的一个[全文表示]只对应了一个title,所以会不会找不到呢?
      

  11.   

    那要看你是在哪里调用代码的了.调用的位置过早Label实例还没有生成自然就会发生错误.
      

  12.   

    这个地方应该是循环无数个title+text+全文表示,
    我是想在点击某一个全文表示的时候,把这一组数据里的title给session
      

  13.   

    100%可以工作的事件是DataList的PreRender.那里肯定可以找的到Label.当然可能你可以用更好的解决方法.我不知道你的具体需求所以只能说这么多了.
      

  14.   

    在.aspx.cs文件里面加方法
    protected string GetTitle(object objType)
    {
      strTitle = "" + objType;
      Session["Title"] = strTitle;
      return strTitle;
    }Template里面用<asp:Label runat="server" id="title" Text='<%# GetTitle(Eval("TITLE"))%>' />
      

  15.   

    我是在点击[全文表示]的时候用的,前面的title应该已经有了阿
      

  16.   

    如果你说的是在LinkButton2点击事件里做那很简单.在他的OnClick事件处理中通过sender.FindControl就可以找到这个Label.sender就是你点击的LinkButton
      

  17.   

    DataList1_ItemCommand是这个事件里
      

  18.   

    如果用这个事件,你必须传入当前的index作为CommandParameter,然后通过index找到当前的DataListItem,再找到这个Label.如果你不知道怎么做就直接用OnClick事件.
      

  19.   

    LinkButton2能单独的写OnClick事件么?上面的选项卡里根本没有LinkButton2啊,就只有DataList1
      

  20.   

    ....你这么做.先把LinkButton2剪帖到DataList外面.这样就能在design view上看到LinkButton然后用傻瓜版Property window了.自动加好后台事件后再转到html view,把生成的代码copy回去.
    如果熟悉就可以直接手动写代码.
      

  21.   

    [在他的OnClick事件处理中通过sender.FindControl就可以找到这个Label.sender就是你点击的LinkButton]?麻烦你能不能说具体一点啊
      

  22.   

    dim l as Label=sender.FindControl("title") 
      

  23.   

    dim lb as label; 
    lb = datalist.Item[e.item.itemindex].FindControl('title') as Label ; 
    这应该是最终版本了
      

  24.   

    还是我老公强!想一想就想出来了!嗬嗬!表说我是王婆!揭晓正确答案!
    dim l as Label=DataList1.Items(e.Item.ItemIndex).FindControl("title") 
    session()= l不过还是很谢谢大家!尤其是ALLEN_CHEN!
    发分喽!