1

我不知道如何在我的复合控件中动态创建的 GridView 中启用排序。当然,我尝试将 GridView 的 AllowSorting 属性设置为“true”,但它不允许排序功能(标题中没有可以单击的链接按钮)。AllowPaging 属性工作得很好。

任何想法如何解决这个问题?

protected override void OnInit(EventArgs e)
    {
        innerGridView.AutoGenerateColumns = false;
        innerGridView.AllowSorting = true;
        innerGridView.AllowPaging = true;
        innerGridView.PageSize = 2;

        base.OnInit(e);
    }
4

1 回答 1

0

我认为唯一可见的问题是,GridView HeaderRow 中没有生成 LinkBut​​ton。所以我通过将 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);
    }

现在我可以点击标题和排序工作。当然,如果有人能提供更好的解决方案,我会很高兴。

于 2012-11-05T13:05:35.997 回答