日期:2014-05-18  浏览次数:20416 次

****把数据绑定到<a>标签上的问题
<a href="<%#((BoardEntity)Container.DataItem).URL %>">个人主页</a>

我数据库中URL存的是:www.sohu.com

可是绑定完却变成了:<a href="http://localhost/default.aspx/www.sohu.com">个人主页</a>


有没有办法变成:<a href="www.sohu.com">个人主页</a>

------解决方案--------------------
参考这个

HTML code

<asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:HyperLinkField DataNavigateUrlFields="WebSite" DataNavigateUrlFormatString="http://www.{0}.com" DataTextField="WebSite" HeaderText="WebSite" />                
            </Columns>
        </asp:GridView>

------解决方案--------------------
如果数据库中保存的都是 www.sohu.com 这种格式,你可以这样绑定.
<a href='<%# string.Format("http://{0}", Eval("URL")) %>'>个人主页 </a> 

ASP.NET会验证,发现这个链接不带"头"的时候它会认为那个链接标识的是当前站点的相对路径.

------解决方案--------------------
我觉得对于这种网址在数据库中还是存"全名"比较好.
如: 
http://www.aaa.com
https://www.ppp.com
ftp://www.aa.com
http://www.aaa.com?id=5&t=60
..
------解决方案--------------------
<%#"http://"+DataBinder.Eval(Container.DataItem,"URL").ToString()%>
------解决方案--------------------
<%#Eval("URL","http://{0}")%>
------解决方案--------------------
HTML code
<a href=' <%# string.Format("http://{0}", Eval("URL")) %>'>个人主页 </a>

------解决方案--------------------
前面也可以加上http://就可以了
------解决方案--------------------
探讨
如果数据库中保存的都是 www.sohu.com 这种格式,你可以这样绑定.
<a href=' <%# string.Format("http://{0}", Eval("URL")) %>'>个人主页 </a>

ASP.NET会验证,发现这个链接不带"头"的时候它会认为那个链接标识的是当前站点的相对路径.