2

我想在 Gridview 中创建一个列,其值充当超链接。超链接 url 由数据集提供的部分组成

Foreach(dRow in Tables[0].Row)
{
url = "<a href=ClientView.aspx?\"" + dRow["client_id"].ToString() +"</a>";
}

如何在显示此链接的 gridview 中生成列?

其他列在标记中定义。

<asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="False">

<Columns>
     <asp:BoundField DataField="Sno" HeaderText="SNo" />
     <asp:BoundField DataField="ClientName" HeaderText="Name" />
</Columns>
</asp:GridView>

我想在 gridview 的SNoClientName列之间添加列 ClientId ,其文本是从数据集行drow["clientid"]字段获得的,并包含在锚标记之间以表现得像 url。

4

2 回答 2

5

在您的标题中使用 a TemplateField,您不需要动态创建它:

<asp:GridView runat="server" ID="gridView1" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate>
                <asp:hyperlink runat="server" id="hlClientView"
                  NavigateUrl='<%# String.Format("ClientView.aspx?client_id={0}", Eval("client_id")) %>'
                  Text='<%# Eval("client_id") %>'>
                </asp:hyperlink>
            </HeaderTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
于 2013-02-28T14:11:35.840 回答
1

添加到您现有的代码中,添加一个模板字段。

<asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="Sno" HeaderText="SNo" />
        <asp:BoundField DataField="ClientName" HeaderText="Name" />
        <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton runat="server" id="gvlbtnClientVIew"
              PostBackUrl='<%# "ClientView.aspx?client_id=" + Eval("client_id") %>'
              Text='<%# Bind("client_id") %>'>
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:GridView>
于 2013-02-28T16:08:20.197 回答