GridView模型绑定和分类



我在一个页面上有以下gridview,我正在使用模型绑定将数据输入。

                <asp:GridView ID="grdvAppType" DataKeyNames="ApplicationTypeSeqid" runat="server" ItemType="MyType.ApplicationType"
                AutoGenerateColumns="false" SelectMethod="GetAppliationTypes" AllowPaging="true" PageSize="10" AllowSorting="true">
                <EmptyDataTemplate>
                    No records
                </EmptyDataTemplate>
                <Columns>
                    <asp:TemplateField HeaderText="Type Name" SortExpression="TypeName">
                        <ItemTemplate>
                            <%# Item.TypeName %>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

还有其他列,但是我在这里删除了它们。背后的代码具有SelectMethod集为:

        public List<MyType.ApplicationType> GetAppliationTypes(int startRowIndex, int maximumRows, out int totalRowCount)
    {
        List<MyType.ApplicationType> lstAppType = null;
        using (ApplicationTypeRepository appTypeRepos = new ApplicationTypeRepository(new UnitOfWork()))
        {
            totalRowCount = appTypeRepos.All.Where(x => x.isActive).Count();
            var data = appTypeRepos.All.Where(x => x.isActive).OrderBy(x => x.TypeName).Skip(startRowIndex).Take(maximumRows);
            lstAppType = data.ToList();
        }
        return lstAppType;
    }

这可以正常工作,因为我只在每个页面上检索我想要的记录,而不是每次移动到页面时都能获取所有数据。但是,我不确定如何使该分类使用,例如,如果我希望TypeName列可以排序。我需要在SelectMethod中寻找什么才能查看选择哪个选项要排序,如果没有选择,则默认为typeName?

在WPF中,我正在使用DataGrid进行自动排序,并且对我来说很好,但是我不知道它是否适用于ASP.NET。我还找到了这篇文章,请检查一下,我认为这是您正在寻找的内容。希望能帮助到你! http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.allowsorting(v = vs.110).aspx

selectMethod调用称为" sortexpression"的另一个参数。它将为您提供分类的字段。

public List<MyType.ApplicationType> GetAppliationTypes(string sortExpression, 
                   int startRowIndex, int maximumRows, out int totalRowCount)

最新更新