2013-02-28 94 views
2

我想在Gridview中创建一个其值作为超链接的列。 超级链接URL是由从数据集如何在asp:gridview中动态创建列

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的斯诺CLIENTNAME列,其文字是从数据集中行获得drow["clientid"]场被封闭锚标签之间表现得像个URL之间的列客户端Id。

+0

是您'GridView'在您的标记中声明,或在您的代码隐藏文件创建? – jadarnel27 2013-02-28 14:05:47

+0

它在'autogenerate = false'的标记中 – 2013-02-28 14:06:13

+0

你可以显示你的'GridView'标记吗? – jadarnel27 2013-02-28 14:08:18

回答

1

嘛添加到您现有的代码,添加一个TemplateField。

<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> 
5

在头使用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>