Я не могу заставить свой GridView разрешить пользователю сортировать столбец данных, когда я использую пользовательский SqlDataSource.
У меня есть GridView, в котором код в ссылке ASP на него в HTML минимален:
<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();
На данный момент ничего не происходит, когда пользователь щелкает заголовок столбца, когда я ожидаю, что он отсортирует данные столбца. У кого-нибудь есть идеи, что мне не хватает?
Если есть более приятный способ сделать это, это тоже было бы полезно, так как это выглядит грязно для меня!