火大~~~ 貼個代碼
就是script.alert 中轉義問題,每次我都是用一個/來轉義,忘記嵌套兩層,我幫scriptManager.Regsister...... 放在了BasePage裏面,嵌套兩層的話,會丟失一層/,所以要在第一層用兩個/來轉義, 既是 使用 “ //' ”,不然總是會報“什麼什麼少一個括號”的javascript錯誤。
- try
- {
- //check task dependence
- List<RoleTask> lsTasks = rtManager.GetUsedTasksByRoleId(role.Id);
- string UsedTasksError = string.Empty;
- foreach (RoleTask task in lsTasks)
- {
- bool selected = false;
- foreach (ListItem item in lbTasksToRole.Items)
- {
- if (item.Selected)
- {
- if(task.Id.ToString() == item.Value)
- {
- selected = true;
- }
- }
- }
- if(selected == false)
- {
- if (UsedTasksError == string.Empty)
- UsedTasksError = "TIPS: Task //'" + task.Name;
- else
- UsedTasksError += ","+task.Name;
- }
- }
- if (UsedTasksError != string.Empty)
- {
- UsedTasksError += "//' in role //'" + role.Name + "//' are used already, you can//'t unselect them in edit modal!";
- trans.Dispose();
- e.Command.Cancel();
- Alert(UsedTasksError, this);
- //throw new Exception(UsedTasksError);
- return;
- }
- rtManager.UpdateRole(role, (int)Session["UserId"]);
- //add new tasks to role
- foreach (ListItem item in lbTasksToRole.Items)
- {
- if (item.Selected)
- {
- rtManager.InsertRole_Task(role.Id, Int32.Parse(item.Value));
- }
- }
- trans.Complete();
- }
- catch(Exception ex)
- {
- trans.Dispose();
- e.Command.Cancel();
- //throw;
- return;
- }