如何在asp:gridview中动态创建列
问题描述:
我想在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。
答
嘛添加到您现有的代码,添加一个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>
答
在头使用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>
是您'GridView'在您的标记中声明,或在您的代码隐藏文件创建? – jadarnel27 2013-02-28 14:05:47
它在'autogenerate = false'的标记中 – 2013-02-28 14:06:13
你可以显示你的'GridView'标记吗? – jadarnel27 2013-02-28 14:08:18