GridView中使用超链接的技巧

GridView中的超级链接,可以设置一个模版列,放入超级链接的控件,设置绑定参数即可。

数据绑定方式有两种,如下示例:
Eval方式     <%# Eval("id") %>
Bind方式    <%# Bind("id","~/info.aspx?id={0}") %>

推荐使用第一种方式,可以在一个<%# %>里放入多个绑定,而第二种只能如此绑定一个值
<%# Eval("id") + ":" + Eval("name")%>

做超级链接的控件,我们也有多种选择:
1 asp:LinkButton
示例
<asp:LinkButton ID="LinkButton2" OnClientClick=<%# "window.open('info.aspx?id=" + Eval("id") + "&name=" + Eval("name") + "')" %> runat="server"><%# "LinkButton方式绑定:" + Eval("id") %></asp:LinkButton>


2 asp:HyperLink
示例
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "~/info.aspx?id=" + Eval("id") + "&name=" + Eval("name") %>' Text='<%# "HyperLink控件:" + Eval("id") %>'></asp:HyperLink>


3 a标签
示例
<a href='<%# "info.aspx?id=" + Eval("id") + "&name=" + Eval("name") %>'>a标签:<%# Eval("id") + ":" + Eval("name")%></a>
<a href='javascript:alert("<%# "~/info.aspx?id=" + Eval("id") + "&name=" + Eval("name") %>")'>链接js事件:<%# Eval("id") %></a>


LinkButton 不好设置,推荐使用HyperLink或者a的方式,简单实用。特别是a标签,使用javascript的方法也比较方便。

 补充:

<asp:LinkButton ID="LinkButton3" runat="server" PostBackUrl='<%# "~/Default.aspx?id=" + Eval("FUserID") %>'
CausesValidation="False" Text="跳转编辑"></asp:LinkButton>

<asp:DataList ID="Notices" runat="server" Width="100%">
                                    <ItemTemplate>
                                        <table style="width: 100%; border-bottom: dashed 1px Gray">
                                            <tr>
                                                <td style="width: 70%;">
                                                    <img src="../images/Icon4.gif" alt="" />
                                                    <a href='NewsReader.aspx?file_ID=<%#Eval("file_ID") %>'>
                                                        <%# CutString1(Eval("file_Title").ToString(),25)%>
                                                    </a>
                                                </td>
                                                <td style="width: 5%; color: Red">
                                                    <%# Mark(DateTime.Now.Day,((DateTime)Eval("file_PostTime")).Day)%>
                                                </td>
                                                <td style="width: 15%; font-size: smaller;">
                                                    <%#((DateTime)Eval("file_PostTime")).ToString("yyyy.MM.dd") %>
                                                </td>
                                            </tr>
                                        </table>
                                    </ItemTemplate>
                                </asp:DataList>

posted @ 2008-10-23 09:00  快乐  阅读(186)  评论(0编辑  收藏  举报