0

我有以下 GridView,我的源代码如下所示:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ShopData.ascx.cs" Inherits="usercontrols.UsercontrolsShopData" %>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Export to csv</asp:LinkButton>
<br /> <br />
<asp:GridView ID="gridviewShopData" runat="server" DataSourceID="SqlDataSource1" CellPadding="4" BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px">
    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
    <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
    <RowStyle BackColor="White" ForeColor="#330099" />
    <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
    <SortedAscendingCellStyle BackColor="#FEFCEB" />
    <SortedAscendingHeaderStyle BackColor="#AF0101" />
    <SortedDescendingCellStyle BackColor="#F6F0C0" />
    <SortedDescendingHeaderStyle BackColor="#7E0000" />

</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="SELECT firstName as 'First Name',lastName as 'Last Name',employeeNumber as 'Employee Number',productID as 'Product Number' FROM ShopOrder where shopID=@pageid">
    <SelectParameters><asp:QueryStringParameter Name="pageid" QueryStringField="id"/></SelectParameters>

</asp:SqlDataSource>

我想让第一列值链接到链接到 url 的按钮。我该怎么做?

4

3 回答 3

2

在您的网格视图中,设置 AutoGenerateColumn="False"。接下来,打开 Gridview 的属性并将列转换为模板字段。在项目模板中,添加超链接控件。从这里您可以随意更改超链接控件。要访问列中的数据,您可以使用 eval(例如 Text='<%# Eval("ColumnName", "Run") %>'

于 2013-03-11T12:27:40.743 回答
2

这可以使用 TemplateField 来完成。请在下面示例代码。

<asp:TemplateField HeaderText="Your Header Here">
<ItemTemplate>
<asp:HyperLink runat="server" Text="<%# Bind(Text) %>" NavigateUrl='<%# "Your Link Here" %>' Target="_blank"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
于 2013-03-11T14:02:32.767 回答
1

将模板字段作为网格视图中的第一列,并在该模板字段中放置链接按钮。

单击链接按钮->链接按钮任务->编辑数据绑定->文本=<%Eval("Your ColumnName")%

于 2013-03-11T13:00:26.470 回答