我有一个动态gridview,标题行需要有超链接。我可以将下面的代码用于静态网格。
对于静态网格:
<asp:boundfield datafield="ID" headertext="ID" headerstyle-wrap="false" Sortexpression="ID"/>
但我怎样才能实现动态网格。
我正在使用下面的代码来填充动态gridview标题单元格文本。除此之外,我如何使标题单元格可以点击。
代码:从数据表
动态填充gridview标题文本if (e.Row.RowType == DataControlRowType.Header)
{
string ID = ViewState["ID"].ToString();
DataTable dtColumnNames = GetColumns(ID);
string[] strColumns = dtColumnText.Rows.OfType<DataRow>().Select(k => k[1].ToString()).ToArray();
for (int i = 0; i < strColumns.Length; i++)
{
e.Row.Cells[i].Text = strColumns[i];
}
}
答案 0 :(得分:-1)
一个简单的解决方案就是插入一个链接元素。
if (e.Row.RowType == DataControlRowType.Header)
{
string ID = ViewState["ID"].ToString();
DataTable dtColumnNames = GetColumns(ID);
string[] strColumns = dtColumnText.Rows.OfType<DataRow>().Select(k => k[1].ToString()).ToArray();
for (int i = 0; i < strColumns.Length; i++)
{
e.Row.Cells[i].Text = "<a href='myUrl'>" + strColumns[i] + "</a>";
}
}
或更新的C#语法
$"<a href='myUrl'>{ strColumns[i] }</a>";
或添加JavaScript调用有几种方法
e.Row.Cells[i].Text = "<a href='javascript:myFunction()'>" + strColumns[i] + "</a>";
或
e.Row.Cells[i].Text = "<a href='#' onclick='myFunction()'>" + strColumns[i] + "</a>";