我的网页上有一个gridview来显示我的查询结果
我通过点击列标题
编写了必要的排序功能但是当我在代码中更改标题时,我无法通过单击
进行排序如何在绑定数据后将列格式从文本更改为超链接?
答案 0 :(得分:1)
我也已经遇到了这个“错误”。技巧是避免在更改Header的Text值时将其转换为字符串(您可能在后面的代码中使用e.Row.Cells [0] .Text =“ This is header 1”已更改)。此后,所有更改的列均将禁用排序。因此,您无需将标头视为文本,而应将其视为LinkButton,一切都会变得很完美。
这是我的解决方案:
我在网格定义中使用OnRowDataBound =“ Exmplgrid_RowDataBound”。如果您要使用此功能,则排序将在前3列保持启用状态,而在第4列保持禁用状态(出于演示目的):
protected void Exmplgrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
LinkButton btnSort = (LinkButton)e.Row.Cells[0].Controls[0];
btnSort.Text = "This is changed header 1";
btnSort = (LinkButton)e.Row.Cells[1].Controls[0];
btnSort.Text = "This is changed header 2";
btnSort = (LinkButton)e.Row.Cells[2].Controls[0];
btnSort.Text = "This is changed header 2";
e.Row.Cells[3].Text = "This is changed header 2. SORTING DISABLED"
}
}
答案 1 :(得分:0)
In order to provide a better answer please release some codes for fix!
在网页中使用网格视图有点困难,但有些专家发布了可用于开发网站或网络应用程序的控件,您可以查看以下链接,甚至评估其他控件,如WYSIWYG编辑器,调度程序Telerik Asp.net控件,树视图,菜单等等。
答案 2 :(得分:0)
使用这些代码进行排序........
protected void RadgvData_SortCommand(object sender, GridSortCommandEventArgs e)
{
GridTableView tableView = e.Item.OwnerTableView;
e.Canceled = true;
GridSortExpression expression = new GridSortExpression();
expression.FieldName = e.SortExpression;
if (tableView.SortExpressions.Count == 0 || tableView.SortExpressions[0].FieldName != e.SortExpression)
{
expression.SortOrder = GridSortOrder.Descending;
}
else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Descending)
{
expression.SortOrder = GridSortOrder.Ascending;
}
else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Ascending)
{
expression.SortOrder = GridSortOrder.Descending;
}
tableView.SortExpressions.AddSortExpression(expression);
RadgvData.Rebind();
}