原地址:http://www.cnblogs.com/chinafine/archive/2008/09/17/1292770.html
今天改以前同事做的项目,在datagrid里用了个HyperLink,我开始是这样绑定的,
<asp:HyperLinkID="lnkUpdate" runat="server" NavigateUrl='HolidayDateAdd.aspx?id=<%#Eval("HolidayID")%>&mod=edit&Pager=<%#this.Pagerdg.CurrentPageIndex%>&Condition=<%#Condition%>'>编辑</asp:HyperLink>
但出来的结果类似:HolidayDateAdd.aspx?id=<%#Eval("HolidayID")%>&mod=edit&Pager=<%#this.Pagerdg.CurrentPageIndex%>&Condition=<%#Condition%>,没有起到绑定作用。后来百度一下才知道:应改为:
<asp:HyperLinkID="lnkUpdate" runat="server"
NavigateUrl='<%#"HolidayDateAdd.aspx?id="+Eval("HolidayID")+ +"&Condition="+Condition%>' >编辑</asp:HyperLink>
这样出来结果就更常了:HolidayDateAdd.aspx?id=1&mod=edit&Pager=2&Condition=true
下面的方法也可以:
以往在数据绑定控件中对HyperLink进行绑定时,经常需要对其Text和NavgateUrl两个属性均加上动态数据,如果写成:
作者: <asp:HyperLink ID="BtAuthor" runat="server" Text='<%# Eval("Author") %>' NavigateUrl='<%# Eval("~/Browse/AuthorDetail.aspx?UserID=<%# Eval("AuthorID") %>")' />
在编译就会报错.但是写成如下形式就能通过了:
作者: <asp:HyperLink ID="BtAuthor" runat="server"
Text='<%# Eval("Author") %>'
NavigateUrl='<%# Eval("AuthorID","~/Browse/AuthorDetail.aspx?UserID={0}")%>' />
由此,对于控件多个属性需要绑定时如果存在冲突,有时候不一定是不允许这样操作,可以从格式上先找找原因,说不定会意外的发现。