gridview表头重写后原来的排序事件没了,要如何加上排序事件呢?

sherrywang 2011-08-04 06:29:42
<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);
}
}
-----------------自定义表头处如何将排序事件加上去呢?--------------------
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sherrywang 2011-08-05
  • 打赏
  • 举报
回复
等待高手指点一二...
sherrywang 2011-08-05
  • 打赏
  • 举报
回复
谢谢楼上二位,
但是我的表头是自定义,即
//自定义表头
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</td><td >门店号</td><td>日期</td><td>金额</td></tr>";
tcl.Add(cell);
}
}
自定义表头后,表头就没法点击了, 我想请教的是排序事件是不是在表头做<a href...>?
子夜__ 2011-08-04
  • 打赏
  • 举报
回复
指间的风 2011-08-04
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090520/10/a091f9c7-d44a-48c9-a340-39d335004319.html
指间的风 2011-08-04
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/215810575.html

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧