カスタム SqlDataSource を使用しているときに、ユーザーがデータの列を並べ替えることができるように GridView を取得できません。
HTML での ASP 参照のコードが最小限である GridView があります。
<asp:GridView id="grid" runat="server" AutoGenerateColumns="False" AllowSorting="True">
</asp:GridView>
コード ビハインドでは、動的に作成された SqlDataSource をアタッチします (含まれる列は常に同じであるとは限らないため、作成に使用される SQL は実行時に構築されます)。例えば:
柱を立てた...
BoundField column = new BoundField();
column.DataField = columnName;
column.HeaderText = "Heading";
column.SortExpression = columnName;
grid.Columns.Add(column);
データソース...
SqlDataSource dataSource = new SqlDataSource(
"System.Data.SqlClient",
connectionString,
generatedSelectCommand);
それからグリッドビュー...
grid.DataSource = dataSource;
grid.DataKeyNames = mylistOfKeys;
grid.DataBind();
現時点では、列データを並べ替えると予想されるときに、ユーザーが列見出しをクリックしても何も起こりません。私が見逃しているものは誰ですか?
これを行うためのより良い方法があれば、これは私には面倒に見えるので、それも役に立ちます!