使用iframe同步点击的每行数据至上文_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 使用iframe同步点击的每行数据至上文

使用iframe同步点击的每行数据至上文

 2014/8/21 1:23:07  lzlg302  程序员俱乐部  我要评论(0)
  • 摘要:最近需要做一个申请单调度,查询出申请单列表,勾选一个或多个申请单同步上传至上文,如果勾选错了,需要同步的删除。即用不刷新的技术上传一行或多行的数据,可以选择AJAX或者iframe。学校学的是AJAX,也比较繁琐,同事提醒我使用iframe(数据比较多)会相对简单,于是开始学习这个新的东西,为了模拟这个功能,以下是之前新建一的个信息的demo,先准备两个页面xinxiIframe.jsp(主界面)exportForDetail.jsp(用于嵌入的页面),有点冗长,其实内容很简单
  • 标签:使用 数据 同步
最近需要做一个申请单调度,查询出申请单列表,勾选一个或多个申请单同步上传至上文,如果勾选错了,需要同步的删除。即用不刷新的技术上传一行或多行的数据,可以选择AJAX或者iframe。学校学的是AJAX,也比较繁琐,同事提醒我使用iframe(数据比较多)会相对简单,于是开始学习这个新的东西,为了模拟这个功能,以下是之前新建一的个信息的demo,先准备两个页面xinxiIframe.jsp(主界面)exportForDetail.jsp(用于嵌入的页面),有点冗长,其实内容很简单。
xinxiIframe.jsp代码如下:
class="java"> function sud(){	//页面复选数据回显
	var ExOrImData = "<s:property value="ExOrImData"/>";
	var id = document.getElementsByName("id");
	var strs = new Array();
	strs = ExOrImData.split(",");
	for ( var j = 0; j < id.length; j++) {
		for (i=0;i<strs.length ;i++ )
		{
			if(strs[i]==id[j].value){
				id[j].checked=true;
			}
		}
	addCheckedData();	//数据列显示
}
  function addCheckedData(){
  var $j = jQuery.noConflict();
	var id=document.getElementsByName("id");
    var ExOrImData = $j("#ExOrImData").val();
    var delData = "";
    for ( var j = 0; j < id.length; j++) {
         if(id[j].checked==true){
        	 ExOrImData+=id[j].value+",";//ExOrImData增加id
	     }else{
	    	 delData+=id[j].value+",";//delData增加删除的id
	     }
    }  
    $j("#ExOrImData").attr("value",ExOrImData);
    var  url="iframeById.action?ExOrImData="+ExOrImData+"&delData="+delData;
	frames["mscform"].location=url; 
}///////////////////////////////////////////////////////////////
  <body onload="sud()">
 <iframe id="mscform" style="width:100%;height:180" marginheight="1" iframemarginwidth="1" frameborder="no" border="0" scrolling="yes"></iframe>//嵌入iframe
   <s:form name="tcForm" enctype="multipart/form-data">
		<table width="98%" align="center">
	        <tr>
	            <td align="center">
	                <input type="submit" name="btn1" class="btn4" value="查  询" onclick="search()">
	                <input type="button" name="btn2" class="btn4" value="重  置" onclick="clearFormInput()">
	            </td>
	        </tr>
    	</table>
		<table border=0 cellpadding=1 cellspacing=1 class="query_table" width="98%" align="center">
				<tr>
					<th colspan="28" nowrap>
						<div align="left">iframe测试查询列表</div>
					</th>
				</tr>
				<tr>
					<th nowrap>选择</th>
					<th nowrap>工资/th>
					<th nowrap>性别</th>
					<th nowrap>住址</th>
					
				<s:iterator value="page.results" status="stat" id="result">
				<tr>
					<td nowrap>
						<input type="checkbox" onclick="addCheckedData()" name="id" value="<s:property value="id"/>" selectValue='<s:property value="id"/>' />//点击复选框触发事件
					</td>
					<td nowrap><s:property value="sal"/></td>
					<td nowrap><s:property value="sex"/></td>
					<td nowrap><s:property value="adr"/></td>
				</tr>
				</s:iterator>
            <p:pageTag name="page" emptyTip="未查询到数据。"/>
			</table>
			<input type="hidden" value="<s:property value='ExOrImData'/>" name="ExOrImData" id="ExOrImData">//作为一个中间量
   </s:form>
  </body>

exportForDetail.jsp
<body leftmargin="1" topmargin="0" marginwidth="0">
<s:form name="tcShowForm" >
		<table border=0 cellpadding=1 cellspacing=1 class="query_table" width="98%" align="center">
				<tr>
					<th colspan="28" nowrap>
						<div align="left">iframe嵌入的页面</div>
					</th>
				</tr>
				<tr>
					<th nowrap style="display:none">选择</th>
					<th nowrap>id</th>
					<th nowrap>工资</th>
					<th nowrap>性别</th>
					<th nowrap>地址</th>
				</tr>
				<s:iterator value="showList" status="stat" id="result">
				<tr>
					<td nowrap style="display:none">
						<input type="checkbox" name="hiddenId" id="hiddenId" value="<s:property value="id"/>" selectValue='<s:property value="id"/>' />
					</td>
					<td nowrap><s:property value='#stat.index+1'/></td>
					<td nowrap><s:property value="sal"/></td>
					<td nowrap><s:property value="sex"/></td>
					<td nowrap><s:property value="adr"/></td>
				</tr>
				</s:iterator>
    </table>
 </s:form>
  </body>

action的代码如下:
	public String findIframe() {
		int bianhao = 0;
		List xinxi = null;
		showList = new ArrayList();
		String excelData[] = null;		
		if(null!=ExOrImData&&!("").equals(ExOrImData)){
			//去重元素
			excelData = XxCon.StrToAry(ExOrImData);//解析字符串,去除,变为数组
			excelData = XxCon.getNewStr(excelData);	
			//删除元素
			if(null!=delData&&!delData.equals("")){
				String delDataFor[] = XxCon.StrToAry(delData);
				excelData = XxCon.HadValue(delDataFor,excelData);//倘若excelData有delDataFor,则删除,即取消勾选
			}	
			try {
				for(int i=0;i<excelData.length;i++){
					bianhao = Integer.parseInt(excelData[i]);
					ExOrImData = ExOrImData + excelData[i] + ",";					
					xinxi = xinxiService.findByIdframe(bianhao);//根据id查询
					if(null!=xinxi){
						showList.add(xinxi.get(0));
					}
				}
			} 
			 catch (Exception e) {
				e.printStackTrace();
			}
		}		
		return "showList";
	}

不足之处在于没有为同步的信息提供分页(后面在研究),倘若是大型网站会有很多的申请单,而且没有用ajax,毕竟ajax是主流。
使用ie测试,简易的界面图片如下
http://my.iteye.com/admin/picture/131127
发表评论
用户名: 匿名