如何实现Repeater控件点击表头排序功能 一个Repeater中有好多列,我想实现点击Repeater表头的其中一列或者几列能够按照按照升序或者降序排列,这个功能怎么实现?最好有实例代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.cnblogs.com/vaiyanzi/archive/2007/03/23/685871.html参考 实现Repeater控件点击表头排序功能Repeater实现排序功能(双击升序排列,再双击降序排列).原理很简单,在中加个Ondblclick,用它来触发一个LinkButton的服务器事件.LinkButton的服务器事件里重新对数据源进行排序.然后再绑定Repeater.要实现,首先需要在HTML里面加个javascript函数和两个Hidden,一个用来储存要排序的字段,还有一个用来储存升序还是降序.(asc/desc)Javascript代码如下: <script language="javascript">function Getsort(obj){document.all.sortfield.value=obj;if (document.all.sortstring.value == 'ASC'){document.all.sortstring.value = 'DESC';}else if (document.all.sortstring.value == 'DESC'){document.all.sortstring.value = 'ASC';}__doPostBack('LinkButton1','');}</script> HTML中: <INPUT type="hidden" id="sortfield" runat="server"><INPUT type="hidden" id="sortstring" runat="server" value="ASC"><td ondblclick="Getsort('Text');"><b>双击此处可排序</b></td> private void Page_Load(object sender, System.EventArgs e){if (!Page.IsPostBack){CreaterDataSource("Text ASC");}} private void CreaterDataSource(string sort){OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Test.mdb")); dbCon.Open();OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Table", dbCon); DataTable dt = new DataTable();adapter.Fill(dt);DataView dv = dt.DefaultView;dv.Sort = sort;Repeater1.DataSource=dv;Repeater1.DataBind();} private void LinkButton1_Click(object sender, System.EventArgs e){string sortString = Request.Form["sortstring"].ToString();string sortfield = Request.Form["sortfield"].ToString();string fullsortstring = sortfield+" "+sortString;if (fullsortstring != ""&& fullsortstring!=null){CreaterDataSource(fullsortstring);}} 这个需要重新绑定数据源,类似于页面中列表筛选。表头用js加上onclick事件。 然后用from表单提交,重新绑定数据源。 晕,很简单的,只在上放一个linkbutton就行了,因为linkbutton有一个属性是Command,只要你点一下,你就将是desc还是asc的值放到里面,不就行了 如何在CS页面给frame src赋值 asp.net关于登陆问题 二级联动的问题 GridView 显示 HTML 多于的using会不会影响效率? 求一个 .NET 2005 下面的分页控件源码 100分 急寻《c#入门经典》这本书最后3章的2个案例和一个范例的源代码! 马上就可以给分! 怎样获取ie安全设置项 交易平台中订单取消是如何实现的? 新手,急需帮助! 为什么我的项目里有这个网页还是出现HTTP 404 - 找不到网页 怎样使用Eval函数计算两列的积 ?比如有单价和数量列(数据库),界面显示它们的积
要实现,首先需要在HTML里面加个javascript函数和两个Hidden,一个用来储存要排序的字段,还有一个用来储存升序还是降序.(asc/desc)
Javascript代码如下:
<script language="javascript">
function Getsort(obj)
{
document.all.sortfield.value=obj;
if (document.all.sortstring.value == 'ASC')
{
document.all.sortstring.value = 'DESC';
}
else if (document.all.sortstring.value == 'DESC')
{
document.all.sortstring.value = 'ASC';
}
__doPostBack('LinkButton1','');
}
</script> HTML中:
<INPUT type="hidden" id="sortfield" runat="server">
<INPUT type="hidden" id="sortstring" runat="server" value="ASC">
<td ondblclick="Getsort('Text');"><b>双击此处可排序</b></td>
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
CreaterDataSource("Text ASC");
}
}
private void CreaterDataSource(string sort)
{
OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Test.mdb"));
dbCon.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Table", dbCon);
DataTable dt = new DataTable();
adapter.Fill(dt);
DataView dv = dt.DefaultView;
dv.Sort = sort;
Repeater1.DataSource=dv;
Repeater1.DataBind();
}
private void LinkButton1_Click(object sender, System.EventArgs e)
{
string sortString = Request.Form["sortstring"].ToString();
string sortfield = Request.Form["sortfield"].ToString();
string fullsortstring = sortfield+" "+sortString;
if (fullsortstring != ""&& fullsortstring!=null)
{
CreaterDataSource(fullsortstring);
}
}