asp.net – 如何使用带有TemplateFields的ObjectDataSource对Gri
背景:
我正在使用GridView和ObjectDataSource.我正在实施分页和排序. 在ObjectDataSource上: objectDataSource.TypeName = value; objectDataSource.SelectMethod = "Select"; objectDataSource.SelectCountMethod = "SelectCount"; objectDataSource.SortParameterName = "sortExpression"; objectDataSource.EnablePaging = true; 在GridView上: gridView.AllowPaging = true; gridView.AllowSorting = true; gridView.DataSource = objectDataSource; 为了使分页和排序工作,我将“EnableSortingAndPagingCallbacks”设置为True.之前,我得到一个“System.Web.HttpException:GridView触发的事件排序,但没有处理.”这解决了它. 如果我在GridView中只使用BoundFields,这很好并且工作正常. 但是,如果我使用TemplateFields,我会收到“NotSupportedException:TemplateField不支持回调,因为某些控件无法在回调中正确更新.在GridView上关闭回调.” 哪个,有道理.我只需要知道如何在不使用EnableSortingAndPagingCallbacks的情况下进行排序. 如果EnableSortingAndPagingCallbacks = True: >寻呼作品 如果EnableSortingAndPagingCallbacks = False: >寻呼作品 我的问题: 如何让Paging,Sorting和TemplateField同时工作? 澄清实施情况: 将ObjectDataSource与GridView一起使用需要实现一个名为Select的方法,该方法提供排序表达式,要返回的行数和起始行: public IEnumerable<CountyAndStateGridRow> Select(string sortExpression,int maximumRows,int startRowIndex) { string oql = "select County order by {" + sortExpression + "}" ; var counties = QueryProvider.ExecuteQuery(oql).Cast<County>(); var page = counties.Skip(startRowIndex).Take(maximumRows); var rows = page.Select( county => new CountyAndStateGridRow { CountyName = county.Name,StateName = county.State.Name,}); return rows; } 特定的SortExpression在aspx / ascx中定义: <Columns> <asp:BoundField HeaderText="County Name" DataField="CountyName" SortExpression="Name" /> <asp:BoundField HeaderText="State Name" DataField="StateName" SortExpression="State.Name" /> </Columns> 这应该被传入并在单击列时调用ObjectDataSource上的Select方法,但是如果EnableSortingAndPagingCallbacks = true则它似乎不起作用,而是我得到关于未定义Sorting事件的异常. 解决方法
属性EnableSortingAndPagingCallbacks告诉控件对数据进行客户端排序,以便控件看起来在没有页面回发的情况下自动排序.此方法不支持TemplateFields.为了使用TemplateFields并执行排序,您需要连接GridView.Sorting事件,并将AllowSorting属性设置为true.完成后,当单击列标题并且可以从那里处理排序逻辑时,应触发事件.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 当注入服务或控制器的依赖关系太
- Pro ASP.NET Core MVC(四)【C#关键特征】
- 如何获得干净的ASP.Net错误页面?
- asp.net-mvc – 如何在单个视图中使用两个表单
- asp.net – Web.Debug.config没有将连接字符串转
- asp.net – 用于Basic或Windows身份验证的无限重
- asp.net-mvc – ASP.NET MVC数据库本地化
- asp.net-mvc-3 – 何时在Mvc3中使用ViewBag,View
- asp.net-mvc – 在Mono上运行ASP.NET应用程序的主
- ASP.NET设计网络硬盘之删除文件夹实现代码