当在使用GridView来实现分页和排序的时候
1.当点击下一页的标签时会出现"未处理的PageIndexChanging事件"这时只需要在GridView标签中添加OnPageIndexChanging事件,
并使OnPageIndexChanging="GridView2_PageIndexChanging"
再在后台代码中添加以下函数:
protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView2.PageIndex = e.NewPageIndex;
DataBind();
}
2.当点击标题栏来实现排序时出现"触发了未处理的Sorting事件",这时要在GridView标签中添加OnSorting事件,并使
OnSorting=" GridView2_Sorting"
这个问题的解决方法如下:
我的开发环境:有一个HouseDB.cs文件里面有一个GetHouseInfo函数,一个前台页面HaveShiSearchResult.
HouseDB.cs文件中创建了一个函数,代码函数如下:
public DataSet GetHouseInfo(string Province, int Houseprice1, int Houseprice2)
{
SqlConnection myConnection = new SqlConnection(sqlString.Connection());
SqlCommand myCommand = new SqlCommand("SearchHouse", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterProvince = new SqlParameter("@Province", SqlDbType.NChar, 10);
parameterProvince.Value = Province;
myCommand.Parameters.Add(parameterProvince);
SqlParameter parameterHouseprice1 = new SqlParameter("@Houseprice1", SqlDbType.Int);
parameterHouseprice1.Value = Houseprice1;
myCommand.Parameters.Add(parameterHouseprice1);
SqlParameter parameterHouseprice2 = new SqlParameter("@Houseprice2", SqlDbType.Int);
parameterHouseprice2.Value = Houseprice2;
myCommand.Parameters.Add(parameterHouseprice2);
myConnection.Open();
DataSet dtr = new DataSet();
SqlDataAdapter result = new SqlDataAdapter(myCommand);
result.Fill(dtr);
return dtr;
}
HaveShiSearchResult.aspx.cs代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
}
}
protected void GridView2_Sorting(object sender, GridViewSortEventArgs e)
{
ViewState["sortexpression"] = e.SortExpression;
if (ViewState["sortdirection"] == null)
{
ViewState["sortdirection"] = "asc";
}
else
{
if (ViewState["sortdirection"].ToString() == "asc")
{
ViewState["sortdirection"] = "desc";
}
else
{
ViewState["sortdirection"] = "asc";
}
}
BindGrid();
}
protected void BindGrid()
{
HouseManger.GetParmar showparam = new GetParmar();
HouseManger.HouseDB SearchHouseInfo = new HouseManger.HouseDB();
DataSet ds = new DataSet();
ds= SearchHouseInfo.GetHouseInfo(showparam.getProvince(),showparam.getHouseprice1(), showparam.getHouseprice2());
DataView dv = ds.Tables[0].DefaultView;
if (ViewState["sortexpression"] != null)
{
dv.Sort = ViewState["sortexpression"].ToString() + " " + ViewState["sortdirection"].ToString();
}
GridView2.DataSource = dv;
GridView2.DataBind();
}