<uc8:UC_OrderBy ID="UC_OrderBy1" runat="server" _Outhref="<%= Tools.UrlPath() %>/List.htm" />这个问题就是,如何给服务器控件绑定数据
如上面这样绑定后
_Outhref="<%= Tools.UrlPath() %>/List.htm"
就是这个
而我里面的程序
<%= Tools.UrlPath() %>
没有用每次这样的话我都得到后台去写
UC_OrderBy1._OutHref = Tools.UrlPath() + "/List.htm";但写在页面的话这东西会更直观有没有办法在页面写,而不要在cs里面写呢谢谢

解决方案 »

  1.   

    <uc8:UC_OrderBy ID="UC_OrderBy1" runat="server" _Outhref='<%#  Tools.UrlPath() + "/List.htm" %>' /> 然后,在你的页面的Page_Load中要有代码:if(!IsPostback)
        UC_OrderBy1.DataBind();
    这里,关键是是<%#而不是<%=。后者这种asp计算方法的流程是不同的,这种方法只是在页面输出html时才计算。
    对于绑定表达式,你需要使用DataBind()来在合适的事件中绑定。例如你除了在Page_Load中写,也可以同时在另一个事件中调用    
         
        UC_OrderBy1.DataBind();这样,就相当与你可以随时让更新了的值“重新”刷新到UC_OrderBy1上。如果你的UC_OrderBy1具有使用ViewState记住_Outhref值状态的功能,那么你无需总是执行   UC_OrderBy1.DataBind();而要在一定条件下(例如这里是页面初始化时)才绑定,因为当页面回发时UC_OrderBy1._Outhref它应该返回状态值(它完全可能自主地改变值)。因此,_Outhref属性中应该不但可以接受外部输入的值,而且在页面回发中记住状态值。
    最后,接口属性名最好不要使用下划线开头。通常,以下划线开头的命名只是用于对象的局部变量命名。
      

  2.   

    谢谢 sp1234
    那也不能把
    if(!IsPostback) 
        UC_OrderBy1.DataBind(); 
    这句也写在aspx里面呢谢谢