求教js数据如何返回C#后台处理

angelopan 2017-12-21 01:21:18
做了一个角色和权限管理的页面,页面加载时从数据库中读取出了角色和对应的权限字符串(用模块的ID号拼接成),前台用JQuery代码写了对于角色和权限的修改,想请教:
1)如何将前台对于角色的修改,不同角色权限的修改等前台的操作返回给后台?
2)可不可以设计一个DataSet,页面加载时Fill(“角色权限表”),然后在本地修改操作后,一次性Update()到数据库中?
3)如果使用Ajax来实现操作过程中的异步刷新,如何实现?
代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RoleTEST.aspx.cs" Inherits="Admin.RoleManage.RoleTEST" %>

<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<title>角色管理信息页</title>
<script src="../../Js/jquery.js"></script>
<link href="../../Css/bootstrap.css" rel="stylesheet" />
<script src="../../Js/bootstrap.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var roleString = ""; //角色的名字
var Arr;
var defaultRoleString = "2,3,4,5,6,7,8,9,10,";
$("#lstRole").selectIndex = -1;
$("#btnChange").click(function () {//点击修改按钮后的操作
var string_chk = "";
Arr = $('input[type="checkbox"]');
for (var i = 0; i < Arr.length; i++) {
if (Arr[i].checked)
string_chk += Arr[i].value + ",";
}

alert(string_chk); //输出的是点击“修改”按钮后,对应角色的权限字符串
$("#AuthorityString").val(string_chk); ; //设置了一个隐藏域input
$("#txtRole").val(string_chk);
//alert($("#AuthorityString").parentNode);
//alert($("#AuthorityString").value);
});
$("#lstRole").change(function () {//列表框选择不同角色名后的操作
roleString = this.value;
//alert(roleString);
Arr = $('input[type="checkbox"]');
for (var i = 0; i < Arr.length; i++) {
Arr[i].checked = false;
if (roleString.indexOf(Arr[i].value) >= 0)//如果
Arr[i].checked = true;
}
});
$("#btnAdd").click(function () {//单击添加按钮时的操作
if ($.trim($("#txtRole").val()) != "") {//输入不为空格
var r = window.confirm("确认要添加新角色“" + $("#txtRole").val() + "”么?");
if (r) {
$("#lstRole").append("<option value='" + defaultRoleString + "'>" + $("#txtRole").val() + "</option>");
$("#lstRole").find("option[text='" + $("#txtRole").val() + "']").attr("selected", true);
alert("请在右边的列表中为新角色勾选可访问的功能模块!");
}
}
else {
alert("请输入要添加角色!");
$("#txtRole").focus();
}
});
$("#btnDel").click(function () {//点击“删除”按钮时的操作
if ($("#lstRole").val()) {
var curRole = $("#lstRole").find("option:selected").text();
var r = window.confirm("确认要删除角色“" + curRole + "”么?");
if (r) {
$("#lstRole option").each(function () {
if ($(this).text() == curRole)
this.remove();
});
if (!$("#lstRole").val())//删除后没有角色被选中,则复原所有复选框
allCheckBoxUnChecked();
}
}
});
});


function allCheckBoxUnChecked() {//复原所有的复选框为“未选择”
Arr = $('input[type="checkbox"]');
for (var i = 0; i < Arr.length; i++) {
if (Arr[i].checked)
Arr[i].checked = false;
}
}



</script>
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<div class="row">
<div class="col-xs-4">
<div class="form-group">
<label for="lstRole">
当前系统已添加以下角色</label>
<asp:ListBox runat="server" ID="lstRole" CssClass="form-control" Height="300px" DataSourceID="SqlDataSource1"
DataTextField="RoleName" DataValueField="RoleAuthority"></asp:ListBox>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=.;Initial Catalog=StudentMIS;Integrated Security=True"
ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM [RoleInfo]">
</asp:SqlDataSource>
<br />
<input type="hidden" runat="server" id="AuthorityString" />
<label>
添加新的角色:</label><input id="txtRole" type="text" class="form-control" placeholder="在此输入新角色名称" /><br />
<input id="btnAdd" class="btn btn-success" type="button" value="添加"/>

<input id="btnChange" class="btn btn-success" type="button" value="修改"/>

<input id="btnDel"class="btn btn-danger" type="button" value="删除"/>

</div>
</div>
<div class="col-xs-8">
<label>
选择要赋予角色访问权限的系统子模块</label>
<div style="border: solid #CCCCCC 2px; height: 450px; width: auto">
<div class="col-xs-6">
<input type="checkbox" value="12">修改个人资料<br />
<input type="checkbox" value="15">班级信息查询<br />
<input type="checkbox" value="17">专业信息查询<br />
<input type="checkbox" value="19">数据批量导入<br />
<input type="checkbox" value="22">数据备份<br />
<input type="checkbox" value="24">系部教工管理<br />
<input type="checkbox" value="27">访问权限管理<br />
</div>
<div class="col-xs-6">
<input type="checkbox" value="13">修改个人密码<br />
<input type="checkbox" value="16">系部信息查询<br />
<input type="checkbox" value="18">定制数据报表<br />
<input type="checkbox" value="20">数据批量导出<br />
<input type="checkbox" value="23">班级用户管理<br />
<input type="checkbox" value="26">用户信息审核<br />
<input type="checkbox" value="28">用户组管理<br />
</div>
</div>
</div>
</div>
</div>
</form>
</body>
</html>


后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using DAL;
using Model;
namespace Admin.RoleManage
{
public partial class RoleTEST : System.Web.UI.Page
{
LoginUser u;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["LoginUser"] != null)
{
u=(LoginUser)Session["LoginUser"];
//判断用户有误访问本页面的权限
if (!LoginUserBLL.IsAllowedAccess(u.RoleId, Request.Url.ToString()))//不具备页面访问权限
{
Response.Redirect("error.aspx");
}
else//成功登陆
{
lstRole.SelectedIndex = -1;
}
}
}

protected void lstRole_SelectedIndexChanged(object sender, EventArgs e)
{

}
}
}
...全文
320 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelopan 2017-12-30
  • 打赏
  • 举报
回复
引用 1 楼 usecf 的回复:
前端向后台传值 一般都是通过http post或者get请求传递的,将你的参数带在请求里面发给后台,后台获取到前端的请求后,进行处理
这个简单的内容我肯定是知道的,重点在第二个和第三个问题上
usecf 2017-12-21
  • 打赏
  • 举报
回复
前端向后台传值 一般都是通过http post或者get请求传递的,将你的参数带在请求里面发给后台,后台获取到前端的请求后,进行处理

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧