怎样动态创建gridview的链接列
页面中有一个gridviw控件,页面加载时已经绑定了数据,这个gridview中有一列是超级链接列。即<asp:HyperLinkFieldDataNavigateUrl...
页面中有一个gridviw控件,页面加载时已经绑定了数据,这个gridview中有一列是超级链接列。
即
<asp:HyperLinkField DataNavigateUrlFields="id" DataTextField="title"
HeaderText="问题描述" DataNavigateUrlFormatString="A.aspx?id={0}">
<HeaderStyle Font-Size="10pt" HorizontalAlign="Left" /> <ItemStyle Font-Size="9pt" /> </asp:HyperLinkField>
我在按下“查询”按钮后,这个gridview重新绑定了数据,超级链接列还是原来的那一列。但这时我要的是这个超级链接列的指向是另一个页面。即
DataNavigateUrlFormatString="A.aspx?id={0}"> 指向的页面不再是A.aspx,而是B.aspx,也就是
DataNavigateUrlFormatString="B.aspx?id={0}"
这个在后台代码中该如何实现,请高手赐教。 展开
即
<asp:HyperLinkField DataNavigateUrlFields="id" DataTextField="title"
HeaderText="问题描述" DataNavigateUrlFormatString="A.aspx?id={0}">
<HeaderStyle Font-Size="10pt" HorizontalAlign="Left" /> <ItemStyle Font-Size="9pt" /> </asp:HyperLinkField>
我在按下“查询”按钮后,这个gridview重新绑定了数据,超级链接列还是原来的那一列。但这时我要的是这个超级链接列的指向是另一个页面。即
DataNavigateUrlFormatString="A.aspx?id={0}"> 指向的页面不再是A.aspx,而是B.aspx,也就是
DataNavigateUrlFormatString="B.aspx?id={0}"
这个在后台代码中该如何实现,请高手赐教。 展开
2个回答
推荐于2016-07-27
展开全部
在程序运行中使GridView动态生成列,而并不是将列固定写死在GridView上,写个绑定GrideView的方法,参考如下:
/// <summary>
/// 绑定生成GridView
/// </summary>
/// <param name="gdv">要绑定的GridView</param>
/// <param name="dtblDataSource">GridView的数据源</param>
/// <param name="strDataKey">GridView的DataKeyNames</param>
public static void GridViewBind(GridView gdv, DataTable dtblDataSource, string strDataKey)
{
gdv.Columns.Clear();
gdv.AutoGenerateColumns = false;
gdv.DataSource = dtblDataSource;
gdv.DataKeyNames = new string[] { strDataKey };
for (int i = 0; i < dtblDataSource.Columns.Count; i++) //绑定普通数据列
{
BoundField bfColumn = new BoundField();
bfColumn.DataField = dtblDataSource.Columns[i].ColumnName;
bfColumn.HeaderText = dtblDataSource.Columns[i].Caption;
gdv.Columns.Add(bfColumn);
}
gdv.Columns[1].Visible = false;
CommandField cfModify = new CommandField(); //绑定命令列
cfModify.ButtonType = ButtonType.Button;
cfModify.SelectText = "修改";
cfModify.ShowSelectButton = true;
gdv.Columns.Add(cfModify);
gdv.DataBind();
}
在程序中,只要调用这个方法就可以啦。
/// <summary>
/// 绑定生成GridView
/// </summary>
/// <param name="gdv">要绑定的GridView</param>
/// <param name="dtblDataSource">GridView的数据源</param>
/// <param name="strDataKey">GridView的DataKeyNames</param>
public static void GridViewBind(GridView gdv, DataTable dtblDataSource, string strDataKey)
{
gdv.Columns.Clear();
gdv.AutoGenerateColumns = false;
gdv.DataSource = dtblDataSource;
gdv.DataKeyNames = new string[] { strDataKey };
for (int i = 0; i < dtblDataSource.Columns.Count; i++) //绑定普通数据列
{
BoundField bfColumn = new BoundField();
bfColumn.DataField = dtblDataSource.Columns[i].ColumnName;
bfColumn.HeaderText = dtblDataSource.Columns[i].Caption;
gdv.Columns.Add(bfColumn);
}
gdv.Columns[1].Visible = false;
CommandField cfModify = new CommandField(); //绑定命令列
cfModify.ButtonType = ButtonType.Button;
cfModify.SelectText = "修改";
cfModify.ShowSelectButton = true;
gdv.Columns.Add(cfModify);
gdv.DataBind();
}
在程序中,只要调用这个方法就可以啦。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询