如何自动轮流排序?
<META HTTP-EQUIV="Refresh" CONTENT="60; URL=index.aspx">这是自动刷新。
当下次刷新时,如何把DATAGRID里的记录(比如有10条,而且这10条记录都是同一时间隔的)
如何要让DATAGRID里的这10条记录每分钟轮流排第一呢?
问题点数:100、回复次数:8Top
1 楼Ivy_zheng(最后一只恐龙)回复于 2006-12-04 18:41:33 得分 30
增加一个排序字段,每次读取,顺便把第一个排到最后,其它的序号都减1
如序号为1~10,1变成11,然后都减1Top
2 楼chengxiaofeng()回复于 2006-12-04 19:08:46 得分 0
我用的是在数据源绑定后添加的字段,如果你是说在SQL数据序中增加一个字段?哪不是很惨,哪我每分钟都要去修改数据库,又如何写呢?
哪我又如何判断60秒后呢?
<datagrid ToolTip="第一列为添加的自动标识列">
<asp:BoundColumn HeaderText="序号"></asp:BoundColumn></datagrid>
private void AddOrderID(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//如果当前项不为空
if(e.Item.ItemIndex != -1 )
{
//取得当前项的索引值加1,因为项的索引值是从0开始的.
int orderID = e.Item.ItemIndex+1;
//设置第一列为的单元格内容为当前项索引值加1
e.Item.Cells[0].Text = orderID.ToString();
}
}
这是数据源:
public void bind()
{
...
DataSet ds = new DataSet();
da.Fill(ds,"testTable");
DataView view = ds.Tables["testtable"].DefaultView;
this.DataGrid1.DataSource = ds.Tables["testTable"].DefaultView;
this.DataGrid1.DataBind();
da.Dispose();
con.Close();
}
这是在为datagrid增加的字段,然后咱办?Top
3 楼chengxiaofeng()回复于 2006-12-05 10:19:05 得分 0
哪位高手帮忙啊,我用SQL加一个字段,然后又能怎么达到自动更新呢?什么方法都行,只要能一分钟后DATAGRID记录值自动轮着来排第一就可以了Top
4 楼sxlfybb(房客)回复于 2006-12-05 10:43:24 得分 25
其实如果按二楼的方法说的话,是不用在数据库中去修改的,你可以在数据源中控制呀.在数据源是datatable的时候你可以添加列的.操作完成之后再将defaultview赋给dg就可以了.Top
5 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-12-05 11:17:30 得分 25
如果你的排序是影响“所有人”并且需要永久保存的,就在数据库中完成。如果是局限于页面的,当你开两个页面的时候相互不影响对方的排序,就不能在数据库中完成,而应该在ViewState中完成。你需要将这10条记录放在ViewState中作为数据源,其中有内存中产生的序号字段并且每次刷新都重新编号,而不是每次刷新都读取数据库。Top
6 楼HJS1820(努力成為高手)回复于 2006-12-05 11:29:39 得分 10
頂
結帖時接點分....Top
7 楼chengxiaofeng()回复于 2006-12-05 13:49:23 得分 0
你们说的也没错,就是难实现。我现在不知道怎么写。
最后我在SQL中搞了个随机排序,算解决问题吧。
来着有分,来顶啊Top
8 楼jxjjljf(不用存储我不甘心啊)回复于 2006-12-05 13:53:38 得分 10
dingTop




