【问题标题】:How to apply sorting in ObjectDataSource [closed]如何在 ObjectDataSource 中应用排序 [关闭]
【发布时间】:2013-11-05 06:47:05
【问题描述】:

我有与 ObjectDataSource1 绑定的 asp.net 网格视图,并且此 ObjectdataSource1 与 WCF 服务方法绑定。我是 asp.net 的新手。 问题是我必须在其中应用按列排序。但无法做到这一点。 使用 C# VS2010 启用排序复选框不可见

【问题讨论】:

  • 你应该知道你需要比这更多的细节。
  • 代码有隐私我不能放在那里。这是一个简单的排序问题。函数是从 WCF 服务调用的,为什么不能将排序代码放在 select 方法中
  • 如果您不能分享实际代码,您仍然可以编写触发问题的匿名代码。

标签: asp.net-mvc gridview objectdatasource


【解决方案1】:

我使用这样的排序:

<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();
        }
    }

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多