C# 允许在复合控件中进行GridView排序
我不知道如何在放置在复合控件中的动态创建的GridView中启用排序。当然,我尝试将属性AllowSorting Of GridView设置为“true”,但它不允许排序功能(在标题中没有可以单击的链接按钮)。AllowPaging属性工作正常 有没有办法解决这个问题C# 允许在复合控件中进行GridView排序,c#,asp.net,gridview,composite-controls,C#,Asp.net,Gridview,Composite Controls,我不知道如何在放置在复合控件中的动态创建的GridView中启用排序。当然,我尝试将属性AllowSorting Of GridView设置为“true”,但它不允许排序功能(在标题中没有可以单击的链接按钮)。AllowPaging属性工作正常 有没有办法解决这个问题 protected override void OnInit(EventArgs e) { innerGridView.AutoGenerateColumns = false; innerG
protected override void OnInit(EventArgs e)
{
innerGridView.AutoGenerateColumns = false;
innerGridView.AllowSorting = true;
innerGridView.AllowPaging = true;
innerGridView.PageSize = 2;
base.OnInit(e);
}
我认为唯一可见的问题是,GridView HeaderRow中没有生成LinkButton。所以我绕过它,将onclick属性设置为HeaderRow中的每个单元格
protected override void Render(HtmlTextWriter writer)
{
if (innerGridView.HeaderRow != null)
{
for (int i = 0; i < innerGridView.HeaderRow.Cells.Count; i++)
{
innerGridView.HeaderRow.Cells[i].Attributes["onclick"] =
Page.ClientScript.GetPostBackClientHyperlink(innerGridView, "Sort$" + InnerGridViewDataTable.Columns[i].Caption, true);
}
}
base.Render(writer);
}
受保护的覆盖无效渲染(HtmlTextWriter)
{
if(innerGridView.HeaderRow!=null)
{
for(int i=0;i
现在我可以点击标题和排序工作。当然,如果有人能提供更好的解决方案,我会很高兴。您的数据源是否有有效的SortParameterName?是的,它有-当我将数据源绑定到页面上的其他gridview(不在复合控件中)时,它工作得很好。