aspx file:
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-interactiondatepicker.min.js"></script>
<script type="text/javascript">
function setSortable() {
$("#admintbl tbody").sortable({
update: function (event, ui) {
var f = ui.item;
var n = f.next('tr');
var fid = f.attr('fid');
var bid = 0;
//console.log('Reordering fair=' + f.attr('fid'));
if (n.length > 0) {
//console.log('Before fair='+n.attr('fid'));
bid = n.attr('fid');
}
alert('send');
$.post('Success_Story.ashx', { "fairid": fid, "beforeid": bid }, function (data) {
if (data.success == 'true') { /*location.reload();alert('success');*/ } else alert(data.message);
}, "json");
}
});
}
$(document).ready(function () {
setSortable();
});
</script>
<table>
<!--for i=1;i<rowcount;i++-->
<tr fid=<%# Eval("id") %> >
<td><%# Eval("company") %></td>
<td><%# Eval("order") %></td>
<td><%# Eval("status") %></td>
</tr>
</table>
ashx file:
<%@ WebHandler Language="C#" Class="Success_Story" %>
using System;
using System.Web;
public class Success_Story : IHttpHandler {
private string reply = "{ \"success\":\"true\", \"message\":\"\" }";
private string msg = "";
private const string tbl = "tablename";
private const string ofield = "ordercol";
private int id, beforeid;
public void ProcessRequest(HttpContext context)
{
if (!int.TryParse((context.Request.Form["fairid"]), out id)) msg = "Invaild Story ID";
if (!int.TryParse((context.Request.Form["beforeid"]), out beforeid)) msg = "Invaild Story ID";
try
{
MyData db = new MyData();
db.openConnection();
int pgoi = db.intquery("SELECT " + ofield + " FROM " + tbl + " WHERE ss_status=0 AND story_id=" + id.ToString());
if (msg == "" && db.intquery("SELECT COUNT(*) FROM " + tbl + " WHERE ss_status=0 AND story_id=" + id.ToString()) < 1)
msg = "No Story is found";
if (msg == "")
{
if (beforeid > 0)
{
if (msg == "" && db.intquery("SELECT COUNT(*) FROM " + tbl + " WHERE ss_status=0 AND story_id=" + beforeid.ToString()) < 1)
msg = "Next Story not found";
if (msg == "")
{
int b4o = db.intquery("SELECT " + ofield + " FROM " + tbl + " WHERE ss_status=0 AND story_id=" + beforeid.ToString());
//decrement (-1) order all pages after current page
string cmd = "UPDATE " + tbl + " SET " + ofield + "=" + ofield + "-1 WHERE " + ofield + ">" + pgoi.ToString();
db.exeCommand(cmd);
//update origin before page order
if (b4o > pgoi) b4o--;
//increment (+1) order of before page and all pages after before page
cmd = "UPDATE " + tbl + " SET " + ofield + "=" + ofield + "+1 WHERE " + ofield + ">=" + b4o;
db.exeCommand(cmd);
//set order of current page be the origin before order
cmd = "UPDATE " + tbl + " SET " + ofield + "=" + b4o.ToString() + " WHERE story_id=" + id.ToString();
db.exeCommand(cmd);
}
}
else
{ //place current page at the end
//decrement (-1) order all pages after current page
string cmd = "UPDATE " + tbl + " SET " + ofield + "=" + ofield + "-1 WHERE " + ofield + ">" + pgoi.ToString();
db.exeCommand(cmd);
//set order of current page be number of children of its parent
int max = db.intquery("SELECT MAX(" + ofield + ") FROM " + tbl + " WHERE ss_status=0") + 1;
cmd = "UPDATE " + tbl + " SET " + ofield + "=" + max + " WHERE story_id=" + id.ToString();
db.exeCommand(cmd);
}
}
db.closeConnection();
}
catch (Exception x)
{
reply = "{ \"success\":\"false\", \"message\":\"" + x.Message + " >> " + x.StackTrace + "\" }";
}
if (msg != "") reply = "{ \"success\":\"false\", \"message\":\"" + msg + "\" }";
context.Response.ContentType = "text/plain";
context.Response.Write(reply);
}
public bool IsReusable {
get {
return false;
}
}
}