2013-02-28 48 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>