id Title 上升 下降
1 新闻1 ∧ ∨
2 新闻2 ∧ ∨
3 新闻3 ∧ ∨
4 新闻4 ∧ ∨请大家说下具体做法。谢谢
1 新闻1 ∧ ∨
2 新闻2 ∧ ∨
3 新闻3 ∧ ∨
4 新闻4 ∧ ∨请大家说下具体做法。谢谢
解决方案 »
- 请问怎么把网络上下的论坛代码链接到自己原有的系统上(急!!!在线等)
- 在中文windows 下开发的WEB程序,拿到英文WINDOWS下服务器上, 能运行吗? 只要客户端用中文浏览器就行了吗?
- DataGrid.HyperLinkColumn的DataNavigateUrlField问题
- DataList1中怎么实现选择??
- Asp.net1.1中异步页面的实现???
- C#或者Javascript如何处理加载的HTML,得到其中Form标签内的值呢??????
- 变量如果传递到下多个页面?
- forms身份验证中的RedirectFromLoginPage方法的疑惑
- ASP.NET 如何将sql server数据导出到txt文件中
- 紧急求救:如何在C#中实现页面RESET?
- dataset怎么用
- 今天感冒买药是不是被忽悠了
点击∧和∨时就把它的SortID和它的前一个OR后一个换一下,即一个SortID+1,一个SortID-1
不过要记得保持sortid连续排列
-----------------------------js
function moveUp(e)
{
for (var i = 0; i < e.options.length; i++)
{
if (e.options[i].selected)
{
if (i > 0)
{
var temp = new Option(e.options[i-1].text,e.options[i-1].value);
e.options[i-1].text = e.options[i].text;
e.options[i-1].value = e.options[i].value;
e.options[i].text = temp.text;
e.options[i].value = temp.value;
e.options[i].selected = false;
e.options[i-1].selected = true;
}
}
}
document.all["ctl00$ContentPlaceHolder1$txtResult"].value = getText();
document.all["ctl00_ContentPlaceHolder1_hfldFields"].value = getValue();
}
--------------------------------------下移动
<input id="btnMoveDown" onclick="moveDown(document.all['result'])" onmouseover="this.className='btnBlueOn'" onmouseout="this.className='btnBlue'" type="button"
value="下移" class="btnBlue" style="width: 50px; height: 22px" />
--------------------------------------js
function moveDown(e)
{
var flag = true;
for (var i = 0; i < e.options.length; i++)
{
if (e.options[i].selected && flag)
{
if (i < e.options.length - 1)
{
index = i;
var temp = new Option(e.options[i].text,e.options[i].value);
e.options[i].text = e.options[i+1].text;
e.options[i].value = e.options[i+1].value;
e.options[i+1].text = temp.text;
e.options[i+1].value = temp.value;
e.options[i].selected = false;
e.options[i+1].selected = true;
flag = false;
}
}
}
document.all["ctl00$ContentPlaceHolder1$txtResult"].value = getText();
document.all["ctl00_ContentPlaceHolder1_hfldFields"].value = getValue();
}
SortID的值可以用新闻本身的主键ID来初始化,交换两个sortid就可以,这样就不用保证sortid的连续了
就是你说的这样做,就会怕中间删除了某一行,sortid就断了
所以我实现新闻的这个功能的时候,我都是用个存储过程去保持sortid的连续
在删除时把sortid比它大的都减一就可以了
.我有asp写的代码,你可以参考 //交换排序
if (Request.Form("act") == "swaporder") {
validateAdmin();
var varOpt,varOrder,varNewsId;
varOpt = Request.Form("opt").item; //0 or 1 0向下,1相反
varOrder = Request.Form("order").item;//排序值
varNewsId = Request.Form("id").item; //操作的id
var connStr,fconn,frecords;
connStr=MDBCONNECTIONSTRING;
var fconn = Server.CreateObject("adodb.connection");
fconn.Open(connStr);
var sql ,opt,order;
order = " order by orderindex asc"
opt = ">"
if(varOpt == "0")
{
opt = "<";
order = " order by orderindex desc";
}
sql = "select top 1 * from [news] where orderindex "+opt+varOrder+order;
var rsreq = fconn.Execute(sql);
if( rsreq.eof == true || rsreq.bof == true ){
fconn.close();
Response.End();
}
var tmpid, tmporder;
tmpid = rsreq("id");
tmporder = rsreq("orderindex");
sql = "update [news] set orderindex = " + varOrder + " where [ID] = " + tmpid;
fconn.Execute(sql);
sql = "update [news] set orderindex = " + tmporder + " where [ID] = " + varNewsId;
fconn.Execute(sql);
fconn.close()
Response.End();
}
添加的时候Function GetMaxOrder()
dim connStr,fconn,frecords
connStr=vbsConnectionString
set fconn = Server.CreateObject("adodb.connection")
fconn.Open connStr
Dim rscount,flag
flag = 1
set rscount = fconn.Execute("select max(orderindex) from [news] ")
if isnull(rscount(0)) = true or isempty(rscount(0)) = true or rscount(0) = "" then
flag =1
else
flag=rscount(0) +1
end if
fconn.close
GetMaxOrder = flag
end function
1 3 7desc也可以。 排序根本不用边续的数字。。大哥
向上移反之sortid不用连续,只需要不重复
添加数据的时候该字段=count(id)的值就好了排序的时候,就是更新上一条和下一条的排序值就可以了。其实可以不连续的。
你取两个id这样判断,效果也一样,sortid可以不连续实现方法总数多种多样的啦
如果你哪天删了某些时效性的新闻,这样sortid就很难保证连续性
不靠谱就是不靠谱。 本来不是靠asc和Desc能解决的问题