asp.net – 如何使用带有TemplateFields的ObjectDataSource对GridView进行排序
|
背景: 我正在使用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 – 在自定义编辑器中只包含一次脚本
- asp.net – 为什么即使我将EnableViewState设置为false,也会
- asp.net – Web api界面在本地工作,但不在Azure上
- asp.net – 添加新行到datatable的顶部
- ASP.NET – 一个新的应用程序的最佳队列系统
- asp.net – 如何重命名Visual Studio 2012中的IIS Express网
- asp.net-mvc – ASP.NET MVC – 值类型的自定义验证消息
- asp.net-mvc – ASP.NET MVC Ajax.BeginForm不起作用
- asp.net-mvc – 当前动作是ChildAction吗?
- ASP.NET Web应用程序 – WebResource.axd和ScriptResource.
- asp.net-mvc – 获取错误“视图at’/ Views / Pa
- ASP.NET -- WebForm -- 页面生命周期事件
- 在Asp.net mvc5中使用用户名而不是电子邮件身份
- asp.net – 文件上传控件HasFile始终为false,nam
- IIS7集成vs经典流水线 – 哪些使用更多的ASP.NET
- 如何在ASP.NET应用程序中记录错误(异常)?
- 有条件地排除ASP.NET WebForms中的一个HTML块
- asp.net – 如何在MVC Razor中处理null子实体
- asp.net-mvc – EnumDataType属性在ASP.NET MVC中
- asp.net-mvc – 在ASP.NET MVC 2中模板化Html.Di
