gridview排序不适用于数字当我对此进行排序时,我得到>1,494>23>4,693,这意味着它只是检查第一个数字....我的排序代码是:protectedvoidGridView1_Sorting(objectsender,GridViewSortEventArgse){if(IsPostBack){DataTabledt=Session["TaskTable"]作为数据表;if(dt!=null){//对数据进行排序.dt.DefaultView.Sort=e.SortExpression+""+GetSortDirection(e.SortExpression);GridView1.DataSource=Session["任务表"];GridView1.DataBind();}}else{Response.Redirect("~/Reports1mod.aspx");}}privatestringGetSortDirection(stringcolumn){//默认情况下,将排序方向设置为升序。字符串sortDirection="ASC";//检索最后排序的列。stringsortExpression=ViewState["SortExpression"]作为字符串;if(sortExpression!=null){//检查是否正在对同一列进行排序。//否则,可以返回默认值。如果(排序表达式==column){stringlastDirection=ViewState["SortDirection"]asstring;if((lastDirection!=null)&&(lastDirection=="ASC")){sortDirection="DESC";}}}//在ViewState中保存新值.ViewState["SortDirection"]=sortDirection;ViewState["SortExpression"]=列;返回排序方向;如前所述,您是否将列绑定到字符串以获取这些逗号?您应该将该列绑定到一个int值,并将DataFormatString设置为“{0:N}”,用于带有组分隔符的数字(请参阅BoundField.DataFormatString属性)当将数字排序为字符串时会发生这种情况它从左到右对字符串进行排序,在你的情况下,23个中有2个在4之前。看起来它将数字排序为字符串-即按字母顺序而不是数字顺序。我不太确定你的实际列/值在哪里,你可以转换/转换为某种类型的整数吗?在参考MSDN页面的快速教程后,我也遇到了这个问题:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting(v=vss1010)。aspx您所要做的就是使用第二个参数指定TableData列的类型://要允许按数字排序,请将类型参数添加到列table1.Columns.Add("GridTestID",typeof(Int32));希望这对其他人有用。以上是C#学习教程:gridview排序并不适合所有的数码分享内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
