在Iframe判断ExtJs tree控件选中的节点id并且传输到后台

这个有点小复杂啊,但是基本都是利用在地址栏url中附加信息来获取的:

首先是在treenode的nodeClick事件中传递nodeid,在新增出来的tab内设置一个iframe,在其src属性中带上?id=nodeid。

在iframe内的javascript脚本中利用document.URL再来提取参数,最后在传递给对应的后台action

主要代码如下:

//为Tab控件对应到具体的树形节点点击事件
		leftmenu.on("nodeClick", function(nodeAttr) {
			mainTab.loadTab(nodeAttr);
		});
在loadTab内设置iframe

loadTab : function(node) {

		var n = this.getComponent(node.id);
		if (n) {
			this.setActiveTab(n);
		} else {
			var c = {
				id : node.id,
				title : node.text,
				closable : true,
				layout : 'fit'
			};
			var page = this.findPage(node.id);
			var pn = this.findPanel(node.id);
			n = this.add(pn ? new pn(c) : Ext.apply(c, {
				//autoLoad : {url : page, scripts : true}
				html :  "<iframe width=100% height=100%  frameborder=0 src='" + page + "?id="+ node.id +"'/>"
				}
			));
			
			n.show().doLayout();
		}
		if (n.ds)
			n.ds.load({params:{start:0, limit:10}});
	}

在iframe内的javascript脚本中提取参数:

	var location = document.URL;
	var paramArray = location.split('?');
	var param = paramArray[1];

在Ext.data.Store中传递给相应的action:

    var ds = new Ext.data.Store({
        reader: reader,
        proxy : new Ext.data.HttpProxy({ url : 'ReadToCaseGrid.do?' + param}),
        autoLoad : true
    });

在后台的代码中得到参数:

String params = request.getParameter("id");
String pro_no = (params.split("_"))[0];
String mod_no = (params.split("_"))[1];
System.out.println(pro_no + "  " + mod_no);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值