1

実行時にグリッドビューの列の1つの名前を変更したい.グリッドビューではソートも有効になっています。

グリッドビューは次のようになります。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" OnRowCreated="myGrid_Rowcreate" 
ShowFooter="false"
AllowSorting="true"
OnSorting="GridView1_Sorting"
EnableViewState="false"
ShowHeaderWhenEmpty="True"
AllowPaging="false">

<AlternatingRowStyle CssClass="altrowstyle" />
<HeaderStyle CssClass="headerstyle" />
<RowStyle CssClass="rowstyle" />
<RowStyle Wrap="false" />
<HeaderStyle Wrap="false" />
</asp:GridView>

私の onRowCreate 関数は次のようになります。

  protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridViewRow gvr = e.Row;
        if (gvr.RowType == DataControlRowType.Header)
        {
            gvr.Cells[1].Text = "test1";
        }
    }

列名はtest1に変わりますが、ソート機能はオフになります。どうすれば列名が変更され、ソート機能も維持されますか?私のソートには問題はありません.上記のコードを書いた場合のみ、その列の並べ替えオプションはオフになります。助けてください!ありがとうございました。

4

3 に答える 3

1

あなたの問題は、グリッドを注文したときに送信されるポストバックにあると思います。注文後にグリッドを再バインドする必要はありません。pageLoad に次を追加する必要があります。

If(!PostBack)
    // the code to bind data to your grid

このようにして、グリッドが再ロードされないようにし、列の名前に対して myGrid_RowDataBound に設定した情報は同じままにする必要があります...

于 2013-07-30T19:10:54.160 に答える