Моя проблема: я не знаю, как передавать события для сортировки моего DataTable. Я перечислил страницу .aspx и поток за .cs-файлом для функции BindThrottles. Я ищу простое решение, использующее DataTable. Я видел другой код, который выглядел просто, что использовал события, которые я опубликовал в конце, но не уверен, как использовать эту форму для использования.GridObjectDataSource DataTable Сортировка с параметрами
Моя страница .aspx сконфигурирована как ..
<asp:ObjectDataSource ID="GridObjectDataSource"
runat="server" SelectMethod="BindThrottles"
TypeName="WebsiteNamespace.ThrottleInterval"
SortParameterName="SortBy">
<SelectParameters>
<asp:ControlParameter ControlID="gvThrottles"
Name="sortDirection" PropertyName="SortDirection" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="gvThrottles" AllowSorting="True" runat="server"
DataKeyNames="UserID" DataSourceID="GridObjectDataSource"
>
<Columns>
<asp:TemplateField HeaderText="USERID" SortExpression="USERID">
<ItemTemplate>
<asp:Label ID="lblItemUserId" runat="server"
Text='<%# Eval("USERID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Requests" SortExpression="REQUESTS">
<ItemTemplate>
<asp:Label ID="lblItemNumRequests" runat="server"
Text='<%# Eval("REQUESTS") %>'></asp:Label>
</ItemTemplate>
</Columns>
</asp:GridView>
Мой метод BindThrottles настроен ...
public DataTable BindThrottles(string SortBy, int sortDirection){
//..code to run queries from MongoDB
//..code to create columns and rows of DataTable
//..code to fill the rows with the data from the MongoDB
*************************************************************
//.. I need some code here to let my DataTable sort on
//.. the column header link for Asc or Desc.
*************************************************************
}
Я видел другой StackOverflow пост, который показывает код, как ...
dt.DefaultView.Sort = e.SortExpression + " " +
GetSortDirection(e.SortExpression);
и GetSortDirection сконфигурирован как
public string GetSortDirection(string column)
{
// By default, set the sort direction to ascending.
string sortDirection = "ASC";
// Retrieve the last column that was sorted.
string sortExpression = ViewState["SortExpression"] as string;
if (sortExpression != null)
{
// Check if the same column is being sorted.
// Otherwise, the default value can be returned.
if (sortExpression == column)
{
string lastDirection = ViewState["SortDirection"] as string;
if ((lastDirection != null) && (lastDirection == "ASC"))
{
sortDirection = "DESC";
}
}
}
// Save new values in ViewState.
ViewState["SortDirection"] = sortDirection;
ViewState["SortExpression"] = column;
return sortDirection;
}
Но я не знаю, как получить его в форме, которая может использовать события для сортировки внутри функции, которая уже установила параметры, которые не являются событиями, или если есть лучший способ сортировать как ASC, так и DESC по ссылке заголовка столбца.
Дополнительная информация: Я очень новичок в ASP. Я унаследовал этот проект, поэтому функция по-прежнему в настоящее время называется BindThrottles, даже я думал, что я пытаюсь устранить привязку (советы со стороны сотрудников).