gridview表头重写后原来的排序事件没了,要如何加上排序事件呢?
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" onpageindexchanging="GridView1_PageIndexChanging"
onrowcreated="GridView1_RowCreated" onrowdatabound="GridView1_RowDataBound"
onsorting="GridView1_Sorting" ShowFooter="True">
</asp:GridView>
-----------------------------后台代码------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["SortOrder"] = "id";
ViewState["OrderDire"] = "desc";
bind();
}
}
//获得表和字段名
void bind()
{
DataSet ds = CMRShop.DataBase.SQLServerHelper.Query("select id,storeid,cashDate,cashPrice from cmr_t_storeData");
DataView view = ds.Tables[0].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
view.Sort = sort;
GridView1.DataSource = view;
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bind();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sPage = e.SortExpression;
if (ViewState["SortOrder"].ToString() == sPage)
{
if (ViewState["OrderDire"].ToString() == "Desc")
ViewState["OrderDire"] = "ASC";
else
ViewState["OrderDire"] = "Desc";
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
bind();
}
//自定义表头
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
TableCellCollection tcl = e.Row.Cells;
//清除自动生成的表头
tcl.Clear();
TableCell cell = new TableCell();
cell.Text = "<tr><td >id<a href=\"javascript:doPostBack('GridView1','Sort$id')\">[排序]</a></td><td >门店号</td><td>日期</td><td>金额</td></tr>";
tcl.Add(cell);
}
}
-----------------自定义表头处如何将排序事件加上去呢?--------------------