checkbox批量操作

1.用JS实现的

页面效果图:

clip_image001

aspx代码:

clip_image002

JS代码:

clip_image003

页面效果:

clip_image004

aspx代码:

clip_image005

JS代码:

clip_image006

function batchClick(selectObj) { //selectObj保存的是所选择的的对象的集合

var count = selectObj.length;

// 验证用户用没有选中值

if (count <= 0) {

alert('请选择您要处理的事项!');

return false;

}

// 先取第一个数值,然后再将后面的和第一个比

var caseIdList = "";

var fristAppCode = $(selectObj[0]).attr("appCode");

var fristTaskID = $(selectObj[0]).attr("taskID");

var fristActivity = $(selectObj[0]).attr("currentActivity");

for (var i = 0; i < count; i++) {

// 应用ID,任务ID,当前步骤 这三个是需要比较的

var tmpApp = $(selectObj[i]).attr("appCode");

var tmpTask = $(selectObj[i]).attr("taskID");

var tmpActivity = $(selectObj[i]).attr("currentActivity");

if (fristAppCode != tmpApp || fristTaskID != tmpTask || fristActivity != tmpActivity) {

alert('批处理条件不成立!请选择相同的流程步骤!');

return false;

}

// 流程ID不参与判断,但要传值过去

caseIdList += $(selectObj[i]).attr("caseID") + ","; //以逗号分隔caseID

}

// 给全局变量赋值,因为在Ajax请求后还会调用到

caseIdList = caseIdList.substring(0, caseIdList.length - 1); //去掉最后一个逗号

appCode = fristAppCode;

caseID = caseIdList;

taskID = fristTaskID;

currentActivity = currentActivity;

// 提交请求

SubmitRequest();

}

// 提交请求

function SubmitRequest() {

var caseIDArray = caseID.split(",");

ajaxGet("./Service/WorkflowAjaxHandler.ashx",

{

funcName: "CheckModalType",

appCode: appCode,

caseID: caseIDArray[0],

taskID: taskID

},

onCheckModalTypeSuccessed // 请求回调事件

);

return false;

}

处理请求的Ashx:

public class WorkflowAjaxHandler : IHttpHandler, IRequiresSessionState

{

public void ProcessRequest(HttpContext context)

{

context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

string funcName = context.Request.Params["funcName"];

context.Response.ContentType = "text/plain";

switch (funcName)

{

case "GetAllBackActivity":

{

int appCode = Convert.ToInt32(context.Request.Params["appCode"]);

string caseID = context.Request.Params["caseID"];

int taskID = Convert.ToInt32(context.Request.Params["taskID"]);

WorkflowService svc = new WorkflowService();

string result = svc.GetAllBackActivity(appCode, caseID, taskID);

context.Response.Write(result); //一般处理程序是通过这种方式输出结果

break;

}

case "CheckModalType":

{

int appCode = Convert.ToInt32(context.Request.Params["appCode"]);

string caseID = context.Request.Params["caseID"];

int taskID = Convert.ToInt32(context.Request.Params["taskID"]);

WorkflowService svc = new WorkflowService();

try

{

byte result = svc.CheckModalType(appCode, caseID, taskID);

context.Response.Write(result); //一般处理程序是通过这种方式输出结果

}

catch (Exception ex)

{

string msg = ex.Message;

if (ex.Message.Contains("不存在"))

{

msg += ",请重新申请流程!";

}

context.Response.Write(msg); //一般处理程序是通过这种方式输出结果

}

break;

}

}

}

public bool IsReusable

{

get

{

return true;

}

}

}

2.KIssU自带的

页面效果图

clip_image007

aspx页面代码:

clip_image008

clip_image009

clip_image010

JS代码:

//用来提醒

function delRoles() {

var oSmartGridView1 = document.getElementById("<%=SmartGridView1.ClientID%>");

var sValues = oSmartGridView1.control.getCheckedValues(true);

if (sValues && sValues.length > 0) {

return confirm('您确认要删除吗?');

}

alert("请您选择要删除的角色!");

return false;

}

CS代码:

protected void DelRoles(object sender, EventArgs e)

{

String[] roles = SmartGridView1.GetCheckedValues();

this.RoleService.DeleteRoles(roles);

this.GridSearch.Refresh();

}

DAL:

/// <summary>

/// 批量删除角色

/// </summary>

/// <param name="roleIds">角色Id的数组</param>

public void DeleteRoles(string[] roleIds)

{

using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.Required))

{

IDictionary<string, object> dictionary = new Dictionary<string, object>();

foreach (string roleId in roleIds)

{

dictionary["RoleId"] = roleId;

dao.ExecuteNonQuery("role.deleteUserRoleByRoleId", dictionary);

dao.ExecuteNonQuery("role.deleteRolePermission", dictionary);

dao.ExecuteNonQuery("role.delete.role", dictionary);

}

transactionScope.Complete();

}

}

posted @ 2013-11-27 12:31  weifb  阅读(376)  评论(0)    收藏  举报