重要步骤就省略了………………
1、删除实现无刷新操作
$(function () {
$(".delroom").live("click", function () {
var that = this;
var rid = $(this).attr("ref");
$.post("cuisine_a.aspx?action=delroom", { DishSortID: rid }, function (r) { //post传值,想该页面发送数据DishSortID,发送成功时回调函数function(r)
if (r == "True") {
VMsg.AlertSuccess("删除成功!");
$(that).parents("tr").remove();
}
else {
}
}, "text");
});
});
$('table:not(.edit) tr:not([th]):even').addClass('even');
$('table:not(.edit) tr:not([th]):odd').addClass('odd');
});
获得 test.php 页面的内容,并存储为 XMLHttpResponse 对象,并通过 process() 这个 JavaScript 函数进行处理:
jQuery 代码:
$.post("test.php", { name: "John", time: "2pm" },
function(data){
process(data);
}, "xml");
<a class="operating operating_yellow delroom" href="#" ref="<%# Eval("DishSortID") %>"><img src="/images/a_call_delete.png">删除</a>
前台用jquery post传值后,后台用request[“action”]和Request["DishSortID"]来获取post传过去的值,然后在后台写相关的删除和编辑方法,此方法会用到sql语句对数据库进行相关操作
if (Request["action"].ToLower() == "delroom") DelRoom("sort");
/// <summary>
/// 删除单个菜系
/// </summary>
void DelRoom(string type)
{
int DishSortID = 0;
int ShopID = CurrentUser.ShopID;
int AppID = CurrentUser.AppID;
if (int.TryParse(Request["DishSortID"], out DishSortID))
{
if (DishTagDal.existTag(ShopID, AppID, type, DishSortID))
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "", "alert('此分类下已经有菜品,禁止删除!');", true);
}
else Output(DishTagDal.DelRoom(type, CurrentUser.AppID, CurrentUser.ShopID, DishSortID) ? "True" : "False");
}
}
2、如果编辑的话,需要涉及到传值问题,本页面会有个弹出层,然后从表中取值,
$(".editroom").live("click", function () {
var roomid = $(this).attr("ref"); //返回属性值
var tds = $(this).parents("tr").find("td"); //获取tr的父元素,然后找td
var name = tds.eq(2).text(); //获取索引值index为2的文本值
var imgpath = tds.eq(1).find("img").attr("src");//获取索引值为1,然后找到img,获取img的src属性值
var ImgName = tds.eq(1).find("img").attr("ref");//获取索引值为1,然后找到img,获取img的ref属性值
var p = tds.eq(0).text();
$("#img_id").attr("src", imgpath); //从这开始,对弹出框开始赋值了,取id为img_id的img,然后设置其src的属性值为imgpath,这里imgpath上面已经获取到值了
$("#Img_url").val(ImgName);//value值为imgName
$("#cuisine_name").val(name);
$("#OrderID").val(p);
artDialog({//弹出层相关设置
content: $("#SaveRoom")[0],//弹出框内容为id为SaveRoom的div
title: "编辑分类",
okVal: "保存",
ok: function () {//点击确定按钮,执行下面操作
SaveRoom("edit", roomid);//单独把这个方法写出来
return false;
},
cancelVal: '关闭',
cancel: true,
lock: true
});
});
function SaveRoom(action, rid) {
VerifyByPoshyTip.init([//验证状态,是否符合标准,然后才能对数据库操作
{ 'ContentID': 'cuisine_name', 'AimID': 'cuisine_name', 'TipContent': '名称最多可以输入16个字符,请修改!', 'fn': function () { return $("#cuisine_name").val().Trim().checkScope(1, 16); } },
{ 'ContentID': 'Img_Tip', 'AimID': 'Img_Tip', 'TipContent': '请您上传正确的图片!', 'fn': function () { return $("#Img_url").val().Trim() != ""; } },
{ 'ContentID': 'OrderID', 'AimID': 'OrderID', 'TipContent': '请您输入正确的数字!', 'fn': function () { return $("#OrderID").val().isInt(); } }
]);
if (!VerifyByPoshyTip.V()) return false;
var room_name = $("#cuisine_name").val(); //取值
var orderid = $("#OrderID").val(); //排序
var path = $("#Img_url").val();
if (room_name.length > 0) {//这里条件貌似不够,但是不影响操作
$.post("cuisine_a.aspx?action=" + action, { name:room_name, order: orderid, path:path, rid: rid }, function (r) {//这里jQuery的post方法,相关原理可以百度,传值过去,就要看后台有没有相应操作,从这句就应该进入后台程序,相关程序执行完成后,会有一个output输出,接着进行下面操作,如果输出(返回)的是True,则接着下面的操作
if (r == "True") {
VMsg.Waiting({ time: 2, content: action == "edit" ? "修改成功" : "新增成功", icon: "succeed", close: function () {
location.reload();
}
});
} else {
VMsg.AlertError(action == "eidt" ? "您输入的菜品分类已经存在,请重新输入!" : "您输入的菜品分类已经存在,请重新输入!");
}
}, "text");
}
}
if (Request["action"].ToLower() == "delroom") DelRoom("tag");
else SaveRoom(sql);
/// 保存/修改标签
/// </summary>
private void SaveRoom(string type)
{
string name = Request["name"].Trim();//标签名称
int ShopID = CurrentUser.ShopID;
int AppID = CurrentUser.AppID;
int roomid = 0;
int orderid = Convert.ToInt32(Request["order"]);
string action = Request["action"].ToString();
if (action == "edit")//如果是编辑,判断是否与其他标签名称相同;如果添加,则判断是否与所有标签名称相同
{
int TagID = Int32.TryParse(Request["rid"], out roomid) ? roomid : 0;//编辑,则可以得到主键
if (DishTagDal.existeditTag(TagID, ShopID, AppID, name)) return;//为真,则表示与其他标签名相同
}
else if (DishTagDal.existTag(ShopID, AppID, name))
{
return;
}
DishTag model = new DishTag()//用这种方式,把数据给model层
{
TagName = name,
TagType = type,
AppID = CurrentUser.AppID,
ShopID = CurrentUser.ShopID,
OrderID = orderid,
TagID = Int32.TryParse(Request["rid"], out roomid) ? roomid : 0//主键
};
if (string.IsNullOrEmpty(name)) Output(true, "", Context);
else
{
Output(DishTagDal.SaveTag(model).ToString());
}
}