我的网页上有一个GridView,其DataSource是一个在运行时填充的DataTable。 GridView的AllowSorting属性为True。我已经成功地为这个GridView实现了手动排序。
但我必须将网页翻译成我使用本地资源文件的其他语言。我在RowDataBound事件中更改了GridView列的Header文本。从那时起,我无法对GridView进行排序。
protected void GVSummaryTable_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.Cells.Count > 0)
{
//Translate header text
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = GetLocalResourceObject("GVSummaryTableName").ToString();
e.Row.Cells[1].Text = GetLocalResourceObject("GVSummaryTableLoginLevel").ToString();
e.Row.Cells[2].Text = GetLocalResourceObject("GVSummaryTableLoginID").ToString();
e.Row.Cells[4].Text = GetLocalResourceObject("GVSummaryTableDate").ToString();
}
}
}
如何启用列的排序? 任何帮助,将不胜感激。谢谢!
答案 0 :(得分:9)
将代码更改为以下解决了问题:
if (e.Row.RowType == DataControlRowType.Header)
{
LinkButton LnkHeaderText = e.Row.Cells[1].Controls[0] as LinkButton;
LnkHeaderText.Text = "Name";
}
答案 1 :(得分:0)
我不确定问题是否与标题文本有关,因为排序通常是使用排序表达式完成的。请确保在进行排序时您还要为此属性赋值。希望这有帮助!