问题描述
if(!IsPostBack){databind();ViewState["Filed"]="province";ViewState["Sort"]="ASC";}publicvoiddatabind(){SqlConnectioncn=newSqlConnection(ConfigurationManager.ConnectionStrings["sqltest"].ConnectionString);cn.Open();stringsql="SELECT*FROMProvinceASPJOINCityASCONP.provinceID=C.FartherID";SqlDataAdaptersda=newSqlDataAdapter(sql,cn);DataSetds=newDataSet();sda.Fill(ds);DataViewdv=newDataView(ds.Tables[0]);dv.Sort=(string)ViewState["Filed"]+""+(string)ViewState["Sort"].ToString();//未将对象引用设置到对象的实例。GridViewTests.DataSource=dv;GridViewTests.DataBind();cn.Close();}protectedvoidGridViewTests_Sorting(objectsender,GridViewSortEventArgse){stringstrPage=e.SortExpression;if(ViewState["Filed"].ToString()==strPage){if(ViewState["Sort"].ToString()=="ASC"){ViewState["Sort"]="DESC";}else{ViewState["Sort"]="Desc";}}else{ViewState["SortOrder"]=strPage;databind();}}这是我写的GridView正反向排序,,不知道是哪里错误了里面标注的地方提示();//未将对象引用设置到对象的实例。我写完后还没有成功请大家帮我纠正一下谢谢了
解决方案
解决方案二:
解决方案三:
给你顶
解决方案四:
ViewState的赋值应该在绑定之前if(!IsPostBack){ViewState["Filed"]="province";ViewState["Sort"]="ASC";databind();}
解决方案五:
sql语句里面orderby排序呗
解决方案六:
用viewstate记录排序方式,点击一次转换
解决方案七:
引用3楼ojlovecd的回复:
ViewState的赋值应该在绑定之前if(!IsPostBack){ViewState["Filed"]="province";ViewState["Sort"]="ASC";databind();}
同意,代码顺序问题