将链接列添加到ASP.NET GridView

ast*_*ght 20 asp.net gridview hyperlink

我想输出可点击的新闻标题列表.到目前为止,我可以打印出标题列表,因为我在VS 2010的设计器视图中拖放了NewsHeadline表.您认为我应该如何使列表元素可点击?我找了一个URL属性,但我没有看到它.我需要包裹<a href吗?

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1" 
        EmptyDataText="There are no data records to display.">
        <Columns>
            <asp:BoundField DataField="NewsHeadline" HeaderText="NewsHeadline" 
                SortExpression="NewsHeadline" />
        </Columns>
    </asp:GridView>

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
        ProviderName="<%$ ConnectionStrings:ConnectionString1.ProviderName %>" 
        SelectCommand="SELECT [NewsHeadline] FROM [NewsTable]"></asp:SqlDataSource>
   </form>
Run Code Online (Sandbox Code Playgroud)

RSo*_*erg 31

您需要将列类型从BoundColumn更改为Hyperlink列.

   <asp:hyperlinkfield headertext="NewsHeadline"
      datatextfield="NewsHeadline"
      datanavigateurlfield="NewsURL" 
      datanavigateurlformatstring="http://{0}" />
Run Code Online (Sandbox Code Playgroud)

除了进行此更改之外,您还需要确保选择URL或可用于创建新闻文章链接的内容.在上面的示例中,我假设您可以从SQL源中获取URL.如果它是一个ID,只需输入其余的网址就像这样......"〜/ MyNewsPage.aspx?NewsID = {0}"......

  • 我不得不使用DataNavigateUrlFields是一个.NET 4的东西? (2认同)

Can*_*var 9

改为使用hyperlinkfield:

<asp:hyperlinkfield datatextfield="NewsHeadline"
        datanavigateurlfields="NewsID"
        datanavigateurlformatstring="~\newsdetails.aspx?Id={0}"  />
Run Code Online (Sandbox Code Playgroud)