リスト内のデータの上下移動
14540 ワード
aspxページコード:
上記の3元式は、リストの最初のデータである場合、上へリンクがなく、リストの最後のデータである場合、下へリンクがないことを保証する.
aspx.csファイルコード:
JSファイルコード:
ashxファイルコード:
SQLストレージ・プロシージャ:
<%#(Convert.ToInt32(Eval("sortindex")) == nMaxIndex) ? "" : "<td class='wenzi'>
<a href='#' onclick=\"sortInformation(" + Eval("fid") + "," + ",'up'," + Eval("sortindex") + ")\"> </a></td>"%>
<%#(Convert.ToInt32(Eval("sortindex")) == nMinIndex) ? "" : "<td class='wenzi'>
<a href='#' onclick=\"sortInformation(" + Eval("fid") + "," + ",'down'," + Eval("sortindex") + ")\"> </a></td>"%>
上記の3元式は、リストの最初のデータである場合、上へリンクがなく、リストの最後のデータである場合、下へリンクがないことを保証する.
aspx.csファイルコード:
protected int nMaxIndex = FooterBLL.GetMaxIndex(); // protected int nMinIndex = FooterBLL.GetMinIndex(); //
JSファイルコード:
//
function sortInformation(keyID,optype,sortindex) {
if (keyID <= 0) {
alert(" ID , 。");
return;
}
if (sortindex <= 0) {
alert(" , 。");
return;
}
if (optype != ‘up’ && optype != 'down') {
alert(" , 。");
return;
}
$.ajax({
type: 'POST',
url: 'UserControl/SetInfoSort.ashx',
data: {
KeyID: keyID,
SortIndex: sortindex,
OpType: optype
},
success: function (res) {
if (res == 1) {
window.location.reload();
} else {
alert(" , 。");
}
},
error: function () {
alert(" , 。");
}
});
}
ashxファイルコード:
public class SetInfoSort : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string strRescult = "0"; //1: 0:
string strKeyID = context.Request.Form["KeyID"];
int nKeyID = 0;
if (!int.TryParse(strKeyID, out nKeyID) || nKeyID <= 0)
{
context.Response.Write(strRescult);
return;
}
string strSortIndex = context.Request.Form["SortIndex"];
int nSortIndex = 0;
if (!int.TryParse(strSortIndex, out nSortIndex) || nSortIndex <= 0)
{
context.Response.Write(strRescult);
return;
}
string strCateID = context.Request.Form["CateID"];
int nCateID = 0;
if (!int.TryParse(strCateID, out nCateID) || nCateID <= 0)
{
context.Response.Write(strRescult);
return;
}
string strOpType = context.Request.Form["OpType"];
if(strOpType != "up" && strOpType != "down")
{
context.Response.Write(strRescult);
return;
}
if (InformationBLL.SetInformationSort(nKeyID,nSortIndex,nOpType))
strRescult = "1";
context.Response.Write(strRescult);
}
public bool IsReusable {
get {
return false;
}
}
}
SQLストレージ・プロシージャ:
ALTER PROCEDURE [dbo].[Footer_Sort]
@UPKEYID INT, -- ,
@DOWNKEYID INT, -- ,
@RESCULT INT OUTPUT --1: 0:
AS
BEGIN
SET @RESCULT = 0
BEGIN TRAN T
DECLARE @TEMPUP INT
DECLARE @TEMPDOWN INT
SELECT @TEMPUP = SORTINDEX FROM FOOTER WHERE FID = @UPKEYID
SELECT @TEMPDOWN = SORTINDEX FROM FOOTER WHERE FID = @DOWNKEYID
UPDATE FOOTER SET SORTINDEX = @TEMPDOWN WHERE FID = @UPKEYID
IF(@@ERROR <> 0)
BEGIN
ROLLBACK TRAN T
END
UPDATE FOOTER SET SORTINDEX = @TEMPUP WHERE FID = @DOWNKEYID
IF(@@ERROR <> 0)
BEGIN
ROLLBACK TRAN T
END
SET @RESCULT = 1
COMMIT TRAN T
END