C#学习教程:在asp.netc#中对gridview的列进行排序gridview的数据绑定来自使用linq创建的数据上下文。我想通过单击列标题对数据进行排序。谢谢!为此,您需要做两件事。将排序状态保持为视图状态(SortDirection和SortExpression)您可以根据当前排序状态生成正确的linq表达式。手动处理网格中的排序事件,并使用我写的这个助手按SortExpression和SortDirection排序:);}stringmethodName="OrderBy";if(direction==SortDirection.Descending){methodName+="Descending";}varparamExp=Expression.Parameter(typeof(T),String.Empty);varpropExp=Expression.PropertyOrField(paramExp,sortExpression);//p=>p.sortExpressionvarsortLambda=Expression.Lambda(propExp,paramExp);varmethodCallExp=Expression.Call(typeof(Queryable),methodName,new[]{typeof(T),propExp.Type},source.Expression,Expression.Quote(sortLambda));返回(IQueryable)source.Provider.CreateQuery(methodCallExp);}db.Products.SortBy(e.SortExpression,e.SortDirection)请参阅我的博客文章了解如何执行此操作:http://msdn.microsoft.com/en-us/library/ms745786.aspxhttp://aspnet。4guysfromrolla.com/articles/012308-1.aspx有有关在gridview中排序的更多信息可以在这里找到:MSDNGridviewSorting无论您使用什么方法获取数据,您都可以使用相同的排序Add:AllowSorting="true"tothelabel,itshoulddoitwhen我这样做,它会给出一个错误“GridView'GridView1'触发事件排序,但不处理它。我以前遇到过这种情况......我刚刚创建了一个一次性处理程序,然后一切似乎都开始了.不是最漂亮的解决方案,但它对我有用。也就是说,我没有在GridView代码中看到任何对数据源的引用。您需要这样的东西:然后在您的GridView中:在“属性”面板中,双击“排序条目”。将创建一个新函数。在此函数中编写代码以填充Gridview。唯一的区别是基于GridViewSortEventArgs更改查询e.SortExpression和e.SortDirectione.SortExpression和e.SortDirection总是升序:-(我希望这个非常简短的答案有助于SQL查询的半伪代码上面是C#学习教程:在asp.netSortgridviewcolumnsc#分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注—stringQuery=string.Empty;stringSortExpression=string.Empty;//HDFSort是一个HiddenField!!!protectedvoidSortCommand_OnClick(objectsender,GridViewSortEventArgse){SortExpression=e.SortExpression;Query=YourQuery+"ORDERBY"+SortExpression+""+HDFSort.Value;HDFSort.Value=HDFSort.Value=="ASC"?"DESC":"ASC";RefreshGridView();}protectedvoidRefreshGridView(){GridView1.DataSource=DBObject.GetData(Query);GridView1.DataBind();}这个文章收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
