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

目に見える唯一の問題は、GridViewHeaderRowにLinkBut​​tonが生成されないことだと思います。そこで、HeaderRowのすべてのセルにonclick属性を設定してバイパスします。

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 に答える