Ext.app.AdSitePopedomForm = Ext.extend(Ext.Window,
{
title: '网站功能授权',
id: 'am-adsitepopedom',
autoScroll: true,
xtype: "window",
width: 400,
height: 540,
layout: "absolute",
modal: true,
initComponent: function () {
var userId = Ext.getCmp("am-usergrid").userId;
var mytree = new Ext.tree.TreePanel({
id: 'ppdTree',
x: 5,
y: 5,
width: 378,
height: 470,
useArrows: true,
autoScroll: true,
animate: true,
enableDD: true,
containerScroll: true,
store: new Ext.data.TreeStore
({
proxy:
{
type: 'ajax',
url: 'data/User/UserPopedom.aspx?parameter=ppdTree&userId=' + userId
},
root:
{
id: 0,
text: "选择权限",
leaf: false,
expandable: true,
expanded: true
},
sorters: [
{
property: 'leaf',
direction: 'ASC'
},
{
property: 'text',
direction: 'ASC'
}]
})
});
mytree.on('checkchange', function (node, checked) {
node.expand();
node.checked = checked;
node.eachChild(function (child) {
child.set('checked', checked);
child.fireEvent('checkchange', child, checked);
});
}, mytree);
this.items =
[
mytree,
{
xtype: "textfield",
hidden: true,
name: "Id",
id: "Id",
value: userId
}
];
this.buttons =
[
{
text: '确认',
xtype: 'button',
width: 30,
handler: function () {
var b = mytree.getChecked();
var checkids = new Array; // 存放选中id的 数组
for (var i = 0; i < b.length; i++) {
if (b.length == 1) {
checkids = b[i].data.id;
}
else {
if (i < b.length - 1) {
checkids += b[i].data.id + ",";
}
if (i == b.length - 1) {
checkids += b[i].data.id;
}
}
// checkid.push(b[i].text); // 添加id到数组
}
Ext.Ajax.request({
url: "data/User/UserPopedom.aspx?parameter=poped",
method: "POST",
params: { ppdIds: checkids, userId: userId }, //发送的参数
success: function (response, option) {
response = Ext.JSON.decode(response.responseText);
if (response.success == true) {
if (response.flag == true) {
Ext.MessageBox.alert("提示", "权限分配成功!");
//关闭当前窗体
var adpoped = Ext.getCmp("am-adsitepopedom");
adpoped.close();
//刷新列表
var adGrid = Ext.getCmp("am-usergrid");
adGrid.store.load();
}
else {
Ext.MessageBox.alert("错误信息", "权限分配失败!");
}
}
else {
Ext.MessageBox.alert("错误信息", response.msg);
}
},
failure: function () {
Ext.Msg.alert("提示", "权限分配<br>没有捕获到异常");
}
});
}
},
{
text: '取消',
xtype: 'button',
width: 30,
handler: function () {
var windows = Ext.getCmp('am-adsitepopedom');
windows.close();
}
}
];
Ext.app.AdSitePopedomForm.superclass.initComponent.call(this);
}
});
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CtManager.BLL;
using CtManager.Model;
using Newtonsoft.Json;
public partial class Data_User_UserPopedom : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request["parameter"] == null)
{
Response.Write("");
return;
}
string parameter = Request["parameter"];
if (parameter == "ppdTree") Response.Write(AdvertisingTreePPDData());
else if (parameter == "poped") Response.Write(DistributeAuthority());
else Response.Write("");
}
/// <summary>
/// 权限分配方法
/// </summary>
/// <returns></returns>
public string DistributeAuthority()
{
try
{
if (UserInfoManager.ModifyUserInfoPopedomById(Request["ppdIds"], Request["userId"])) return "{success:true,flag:true}";
else return "{success:true,flag:false}";
}
catch (Exception /*ex*/)
{
return "{success:true,flag:false}";
}
}
/// <summary>
/// 广告位 树的Json数据源(用于授权 数据加上复选框) 用户权限初始化
/// </summary>
/// <returns></returns>
public string AdvertisingTreePPDData()
{
IList<PopeDom> ppdList = UserInfoManager.CreatePopedomTree(Request["userId"]);
return JavaScriptConvert.SerializeObject(ppdList).Replace("Mchecked", "checked");
}
}
分享到:
相关推荐
Extjs4 TreePanel实例 ExtJs4 动态加载 Extjs4 带复选框的树(Checkbox tree) Extjs4 新的布局方式 Extjs4 锁定表头(Locking Grid)功能 Extjs4.0 MVC实例 Extjs4.0动态填充combobox数据 Extjs4中up()和down()的用法...
学习TreePanel时根据网上的资料自己实现的实例,结构如下: 1. 创建一棵树 2. 使用TreeLoader加载数据生成树 3. 读取本地Json数据生成树 4. 使用Servlet提供数据 5. 树的事件 6. 右键菜单 7. 修改节点的默认图标 8. ...
// 获取TreePanel实例 var tree = Ext.getCmp('treeId'); // 监听checkchange事件 tree.on('checkchange', function(node) { // 在这里处理被选中的节点 }); ``` #### 2. 使用cascade方法遍历所有节点 `cascade`...
1. **配置TreePanel**:首先,我们需要创建一个TreePanel实例,并为其配置必要的属性,如`rootVisible`(控制是否显示根节点)、`lines`(控制是否显示连接线)和`autoScroll`(是否自动滚动以显示全部内容)。...
初始化TreePanel实例 接下来,创建一个名为`TreeMater`的`TreePanel`实例,并将其配置为西边区域的面板。该面板绑定了之前定义的`TreeStore`,并设置了面板的一些基本样式和行为。 ```javascript var TreeMater =...
- **loader**: TreePanel的加载器,用于从服务器获取或更新节点数据,通常是`Ext.tree.TreeLoader`实例。 - **selModel**: 树的选择模型,决定了用户如何选择树中的节点,默认是`Ext.tree.DefaultSelectionModel`...
4. **ExtJS前端**:在ExtJS中创建TreePanel实例,配置store以接收JSP返回的JSON数据。通过监听TreePanel的事件,实现用户的交互操作,如点击节点时加载子节点数据。 5. **递归加载**:为了实现无限层级的树,需要在...
首先,我们要创建一个 TreePanel 实例,并在其中设置相应的节点(nodes),每个节点可以包含一个或多个属性,例如 id、text、checked 等。checked 属性用于标记该节点是否被选中。TreePanel 需要监听特定的事件,如...
标题中的“springmvc+extjs4实例树”指的是一个结合了SpringMVC和ExtJS4技术的实战项目,主要用于创建一个具有树形结构的用户界面。这个项目可能用于展示层次结构的数据,例如组织架构、文件系统或者数据库的分类...
### ExtJS布局之border实例详解 #### 一、Border布局简介 在ExtJS框架中,`border`布局是一种非常常见的布局方式,它将容器划分为五个区域:north(北)、south(南)、east(东)、west(西)以及center(中心)。...
在这个“EXTJS 树的实例”中,我们将深入探讨EXTJS树的基本制作过程。 1. **EXTJS Tree的基本概念** EXTJS的树由一系列可扩展的树节点组成,每个节点都可以有子节点,形成层次结构。树组件提供了丰富的功能,包括...
ComboBoxTree是ExtJS4中的一个自定义组件,它结合了ComboBox(下拉框)和TreePanel(树形面板)的功能。ComboBox通常用于提供一个下拉列表供用户选择,而TreePanel则用于展示层次结构的数据。ComboBoxTree将这两者...
ExtJs TreePanel是一种在Web应用程序中用于展示层次结构数据的强大组件。它被广泛应用于构建具有树状结构的导航菜单、文件系统目录视图或者组织结构图。TreePanel结合了丰富的功能和灵活的定制性,使其成为ExtJs框架...
//实例菜单树形 menuTree:new Ext.tree.TreePanel({ title:'功能菜单', region:'west', bodyStyle:'background:transparent url(images/default/panel/group-lr.gif) repeat-x 0 bottom;', id:'extExample-tree', ...
4. 最后,在页面加载完成后,通过`Ext.onReady`回调函数初始化并显示TreePanel。 安全性方面,当从服务器获取数据时,需要注意防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。可以通过设置适当的HTTP头、验证请求...
TreePanel继承自Panel,在ExtJS中使用树控件含有丰富的属性和方法实现复杂的功能。其中Ext.tree.TreeNode代表一个树节点,比较常用的属性包括text、id、icon、checked等、异步树Ext.tree.AsyncTreeNode、树加载器Ext...
接着,创建TreePanel实例,并将其渲染到页面上的指定div元素中。通过设置TreePanel的loader属性为TreeLoader,并指定dataUrl为Servlet的URL,TreePanel组件就能够通过异步请求的方式从服务器获取数据,并将其加载到...
4. **定义TreePanel** 创建一个Ext.tree.Panel,配置上述的store 和其他属性。例如: ```javascript var tree = Ext.create('Ext.tree.Panel', { title: '树形菜单', width: 200, height: 200, store: ...
开发者会编写JavaScript代码来实例化TreePanel,设置其配置项,如URL(指向WCF服务的地址),并监听各种事件,如节点点击、拖放等。 文件名称"codefans.net"可能是指一个示例代码或教程资源,通常这种资源会包含...