现有一用户控件:WebUserControl1.ascx 代码如下:
<a href='edit.aspx?pid=<%#DataBinder.Eval(Container.DataItem,"pid")%>'>编辑</a>在test.aspx 调用 WebUserControl1.ascx 代码如下:<asp:repeater id="list_subject" Runat="server">
<uc1:mpost id=Mpost1 runat="server"></uc1:mpost>
</ItemTemplate>
</asp:repeater>我的目的是想用户控件 WebUserControl1.ascx 能够获得 <%#DataBinder.Eval(Container.DataItem,"pid")%> 这个值以上的代码会出错。请位各位TX应该怎么写呢?

解决方案 »

  1.   

    WebUserControl1后台做绑定了吗?
      

  2.   

    <a>不能这样写,应该是:
    <a href='<%# edit.aspx?pid= DataBinder.Eval(Container.DataItem,"pid").ToString() %>'>编辑</a>
      

  3.   

    不过,我想你的代码是无效的,WebUserControl应该没有DataSource的,这样写看看
    <asp:repeater id="list_subject" Runat="server">
    <a href='<%# edit.aspx?pid= DataBinder.Eval(Container.DataItem,"pid").ToString() %>'>编辑</a>
    </ItemTemplate>
    </asp:repeater>然后后台CS中写
    list_subject.DataSource = xxx;
    list_subject.DataBind();
      

  4.   

    TO: lr2651  
    用户控件后台没有绑定。。
    是在Text.aspx这个文件绑定 代码如下<asp:repeater id="list_subject" Runat="server">
    <ItemTemplate>
    <uc1:mpost id=Mpost1 runat="server"></uc1:mpost>
    </ItemTemplate>
    </asp:repeater>TO: Zoujinyucn(不会游泳的鱼)
    这样写法出错的!
      

  5.   

    可能是我没表达清楚。。
    用户控件代码如下:
    <a href='edit.aspx?pid=<!--在这里我想把test.aspx的repeater控件值pid绑定到这里-->'>编辑</a>Text.aspx 代码如下<asp:repeater id="list_subject" Runat="server">
    <ItemTemplate>
    <uc1:mpost id=Mpost1 runat="server"></uc1:mpost>
    </ItemTemplate>
    </asp:repeater>想在用控件里实现这样的效果<a href='edit.aspx?pid=1'>编辑</a>
    <a href='edit.aspx?pid=2'>编辑</a>
    <a href='edit.aspx?pid=3'>编辑</a>
    <a href='edit.aspx?pid=4'>编辑</a>
      

  6.   

    <asp:repeater id="list_subject" Runat="server">
    <ItemTemplate>
    <a href='<%# edit.aspx?pid= DataBinder.Eval(Container.DataItem,"pid").ToString() %>'>编辑</a>
    </ItemTemplate>
    </asp:repeater>不好意思,少写了一个<ItemTemplate〉