Asp.net mvc 如何在ObjectDataSource中应用排序
我有一个asp.net网格视图,它与ObjectDataSource1绑定&这个ObjectDataSource1与WCF服务方法绑定。我是asp.net新手。 问题是我必须在其中应用按列排序。但我们无法做到这一点。Asp.net mvc 如何在ObjectDataSource中应用排序,asp.net-mvc,gridview,objectdatasource,Asp.net Mvc,Gridview,Objectdatasource,我有一个asp.net网格视图,它与ObjectDataSource1绑定&这个ObjectDataSource1与WCF服务方法绑定。我是asp.net新手。 问题是我必须在其中应用按列排序。但我们无法做到这一点。 使用C#VS2010时,“启用排序”复选框不可见我使用的排序方式如下: <asp:GridView ID="GridView1" DataSourceID="ObjectDataSource1" runat="server" AutoGenerateColumns="Fals
使用C#VS2010时,“启用排序”复选框不可见我使用的排序方式如下:
<asp:GridView ID="GridView1" DataSourceID="ObjectDataSource1" runat="server" AutoGenerateColumns="False" AllowSorting="true" >
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
<asp:BoundField DataField="TelephoneNo" HeaderText=" Phone" SortExpression="TelephoneNo" />
<asp:BoundField DataField="RequestTypeName" HeaderText="Type" SortExpression="RequestTypeName" />
<asp:BoundField DataField="CenterName" HeaderText="Center" SortExpression="CenterName" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="Data.RequestDB" SelectMethod="SearchRequests" SelectCountMethod="SearchRequestsCount" OnSelecting="ObjectDataSource1_Selecting" SortParameterName="sortParameter" >
<SelectParameters>
<asp:Parameter Name="id" Type="String" />
<asp:Parameter Name="telephoneNo" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
和db方法:
public static List<Request> SearchRequests(string id, string telephoneNo, string sortParameter = null)
{
using (MainDataContext context = new MainDataContext())
{
var query = context.Requests
.Where(t => (string.IsNullOrWhiteSpace(id) || t.ID.ToString().Contains(id)) &&
(string.IsNullOrWhiteSpace(telephoneNo) || t.TelephoneNo.ToString().Contains(telephoneNo))));
if (string.IsNullOrEmpty(sortParameter))
return query.OrderByDescending(t => t.ID).ThenByDescending(t => t.StatusName)
.ToList();
return query.OrderBy(sortParameter)
.ToList();
}
}
公共静态列表搜索请求(字符串id、字符串电话号码、字符串sortParameter=null)
{
使用(MainDataContext=new MainDataContext())
{
var query=context.Requests
.Where(t=>(string.IsNullOrWhiteSpace(id)| | t.id.ToString()包含(id))&&
(string.IsNullOrWhiteSpace(telephoneNo)| t.telephoneNo.ToString()包含(telephoneNo));
if(string.IsNullOrEmpty(sortParameter))
返回query.OrderByDescending(t=>t.ID)。然后返回ByDescending(t=>t.StatusName)
.ToList();
return query.OrderBy(sortParameter)
.ToList();
}
}
我希望它能帮助你你应该知道你需要更多的细节。代码有隐私,我不能放在那里。这是一个简单的排序问题。函数是从WCF服务调用的,为什么不能将排序代码放在select方法中?如果您不能共享实际代码,您仍然可以编写匿名代码来触发问题。