快速查询 jsp页面 和 js方法

jsp:

 1 <td class="SearchControl" nowrap="nowrap">
 2     <script type="text/javascript" src="/xnh/commons/js/util/combobox1.js"  ></script>
 3     <input id="FORM1_JGDM" name="FORM1_JGMC" type="text" comboxWidth="400"
 4         comboxHeight="250"
 5         command="dictItem.selectJGDM"
 6         url="/xnh/config/torganization/getExterHospOrg.do?ALLORG=ALL"
 7         paramName="keyword" pageSize="10" value="" oldValue=""
 8         columnName="机构代码,机构名称" fieldName="FORGCODE,FORGNAME" columnWidth=""
 9         class="TextBox" style="width: 120px;"
10         onmousedown="javascript:ComboBox_ShowDownList(this,event)"
11         onkeydown=javascript:ComboBox_OnKeyDown(this,event)
12         onfocus=javascript:ComboBox_OnFocus(this,event)
13         onblur=javascript:ComboBox_OnBlur(this,event)
14         required="false"
15         dataType=""
16         errMessage="" script="" skip="false" autocomplete="off" />
17 </td>

js:

  1 var comboBoxHandle=null;
  2 var selection=null;
  3 var lastValue=null;
  4 function ComboBox_ShowDownList(sender, e){
  5     var container = $get(sender.id + "Container");
  6     if (container)
  7     {
  8       if (container.style.display=="block") return;
  9     }
 10     selection=sender;
 11     e.cancelBubble = true;
 12     //设置isFocus为true
 13     sender.setAttribute("isFocus",true);
 14     ComboBox_Init(sender, e);
 15     ComboBox_StartWebRequest(sender);
 16 }
 17 function ComboBox_OnFocus(sender,e)
 18 {
 19     selection=sender;
 20     sender.select();
 21     sender.setAttribute("isFocus",true);
 22 }
 23 /**
 24  * 隐藏container页面
 25  * @param {Object} sender
 26  * @param {Object} e
 27  * @return {TypeName}
 28  */
 29 function ComboBox_Hidden(sender,e)
 30 {
 31     //获取container页面
 32     var container = $get(sender.id + "Container");
 33     //若不存在就return
 34     if (!container) return;
 35     var table = container.childNodes[1].childNodes[0];
 36     if (table)
 37     {
 38         table.parentNode.removeChild(table);
 39     }
 40     window.setTimeout( function()
 41             {
 42                 container.style.display = "none";
 43             }, 100);
 44
 45 }
 46 function ComboBox_OnBlur(sender,e)
 47 {
 48     alert("blur");
 49     sender.lastValue=null;
 50     var container = $get(sender.id + "Container");
 51     if (!container) return;
 52 //    var table = container.childNodes[1].childNodes[0];
 53 //    if (table)
 54 //    {
 55 //        table.parentNode.removeChild(table);
 56 //    }
 57     sender.setAttribute("isFocus",false);
 58     ComboBox_Hidden(sender,e);
 59 }
 60 function ComboBox_Init(sender, e)
 61 {
 62     var container = $get(sender.id + "Container");
 63     if (!sender.getAttribute("init"))
 64     {
 65         if(!container)
 66         {
 67             //创建 div container appendChild在body下
 68             container = document.createElement("div");
 69             container.id = sender.id + "Container";
 70             container.style.display = "block";
 71             container.className = "ComboBoxContainer";
 72             container.onmousedown=function(e){if (e){event=e};event.cancelBubble = true};
 73             if (sender.getAttribute("comboxWidth"))
 74             {
 75                container.style.width = sender.getAttribute("comboxWidth") + "px";
 76             }
 77             if (sender.getAttribute("comboxHeight"))
 78             {
 79                container.style.height = sender.getAttribute("comboxHeight") + "px";
 80             }
 81             document.body.appendChild(container);
 82             //创建div containerHeader appendChild在container下,为第一个子节点
 83             var containerHeader = document.createElement("div");
 84             containerHeader.className = "Header";
 85             container.appendChild(containerHeader);
 86             //创建div containerContent appendChild在container下,为第二个子节点
 87             var containerContent = document.createElement("div");
 88             containerContent.className = "Content";
 89             containerContent.style.height=container.offsetHeight-containerHeader.offsetHeight-1+"px";
 90             container.appendChild(containerContent);
 91             //创建div iframe  appendChild在container下,为第三个子节点
 92             var iframe=document.createElement("iframe");
 93             iframe.className="MaskIframe";
 94             container.appendChild(iframe);
 95             iframe.style.height=containerContent.offsetHeight+"px";
 96         }
 97         sender.setAttribute("init", true);
 98         //鼠标在页面其他地方点击,container页面会消失
 99         $addHandler(document, "mousedown", function()
100         {
101             ComboBox_Hidden(sender);
102         });
103     }
104     //显示出container页面
105     container.style.display = "block";
106     //定位container页面位置
107     var left=$GetLeft(sender);
108     var top=$GetTop(sender)+sender.offsetHeight;
109
110     if ((left+container.offsetWidth)>$getDocument().offsetWidth)
111     {
112        left=$getDocument().offsetWidth-container.offsetWidth;
113     }
114     if ((top+container.offsetHeight)>$getDocument().offsetHeight)
115     {
116        top=top-container.offsetHeight-sender.offsetHeight;
117     }
118     container.style.left = left + "px";
119     container.style.top = top + "px";
120 }
121 /**
122  * 键盘
123  * @param {Object} sender
124  * @param {Object} e
125  */
126 function ComboBox_OnKeyDown(sender, e)
127 {
128     selection=sender;
129     var container = $get(sender.id + "Container");
130     if ((!container)&&(e.keyCode==13))
131     {
132         if ((sender.value!=sender.getAttribute("oldValue"))&&(sender.getAttribute("required") == "true"))
133         {
134            e.cancelBubble = true;
135         }
136         return false;
137     }
138     //创建container 和子节点 标题块、内容块、iframe
139     ComboBox_Init(sender,e);
140     //获取container
141     var container = $get(sender.id + "Container");
142     //获取 内容块 table
143     var table = container.childNodes[1].getElementsByTagName("table")[0];
144     if (table)
145     {
146         var rowIndex=0;
147         if (table.getAttribute("rowIndex"))
148         {
149             rowIndex = parseInt(table.getAttribute("rowIndex"));
150         }
151         var pageSize=sender.getAttribute("pageSize")?parseInt(sender.getAttribute("pageSize")):20;
152         var pageCount=sender.getAttribute("pageCount");
153         //通过 e.keyCode 判断点击的是哪个键
154         switch (e.keyCode)
155         {
156             //向上
157             case 38:
158                 e.cancelBubble = false;
159                 //先判断 下一个index是否存在
160                 if (table.rows[rowIndex - 1])
161                 {
162                     //改变现在class样式
163                     if (table.rows[rowIndex]) table.rows[rowIndex].className = "TableRow";
164                     table.rows[rowIndex - 1].className = "TableRowOverSpeed";
165                     //设置rowIndex
166                     table.setAttribute("rowIndex", rowIndex - 1);
167                     //判断 rowIndex-1 行到内容快的顶部的高度 小于 内容块的滚动条卷起的长度
168                     if (table.rows[rowIndex - 1].offsetTop<container.childNodes[1].scrollTop)
169                     {
170                         //内容块的滚动条卷起的长度 = rowIndex-1 行到内容快的顶部的高度
171                        container.childNodes[1].scrollTop=table.rows[rowIndex - 1].offsetTop;
172                     }
173                 }
174                 return;
175             //向下
176             case 40:
177                 e.cancelBubble = false;
178                 //获取pageIndex 当前页号
179                 var pageIndex=sender.getAttribute("pageIndex")?parseInt(sender.getAttribute("pageIndex")):1;
180                 //判断 下一个行号是否存在
181                 if (table.rows[rowIndex + 1])
182                 {
183                     //改变当前行号 和下一个行号的数据行的class样式
184                     table.rows[rowIndex].className = "TableRow";
185                     table.rows[rowIndex + 1].className = "TableRowOverSpeed";
186                     //设置 rowINdex
187                     table.setAttribute("rowIndex", rowIndex + 1);
188                     //判断 下一个行号到内容块的顶部距离+数据行的高度 > 内容块滚动条卷起的长度+内容块的高度
189                     if ((table.rows[rowIndex + 1].offsetTop+table.rows[rowIndex + 1].offsetHeight)>(container.childNodes[1].scrollTop+container.childNodes[1].clientHeight))
190                     {
191                         //内容块滚动条的卷起的长度 = 下一个行号到内容块的顶部距离
192                        container.childNodes[1].scrollTop=table.rows[rowIndex + 1].offsetTop;
193                     }
194
195                 }
196                 //查询下一页数据
197                 else if (pageIndex<pageCount)
198                 {
199                     pageIndex++;
200                     sender.setAttribute("pageIndex",pageIndex);
201                     ComboBox_StartWebRequest(sender);
202                 }
203                 return;
204             //键enter
205             case 13:
206                 e.cancelBubble = false;
207                 if (table.rows[rowIndex])
208                 {
209                     //选择改行
210                     table.rows[rowIndex].select();
211                     //设置oldValue值
212                     sender.setAttribute("oldValue",sender.value);
213                 }
214                 else
215                 {
216                     //若没有值,并且新值和旧值不同,且为必填项
217                     if (sender.value!=sender.getAttribute("oldValue")&&(sender.getAttribute("required") == "true"))
218                     {
219                        e.cancelBubble = true;
220                     }
221                 }
222                 //container 页面隐藏
223                 container.style.display = "none";
224                 return;
225         }
226     }
227     else if (e.keyCode==13)
228     {
229         container.style.display = "none";
230         alert("code"+":"+sender.value+":"+sender.getAttribute("oldValue"));
231         if (sender.value!=sender.getAttribute("oldValue")&&(sender.getAttribute("required") == "true"))
232         {
233
234            e.cancelBubble = true;
235         }
236         return false;
237     }
238     getData(sender);
239 }
240 var isLoad=false;
241 var _checkHandle;
242 function getData(sender)
243 {
244     //设置 timeout
245     window.setTimeout(function (){prepairData(sender)},3000)
246 }
247 //
248 function prepairData(sender)
249 {
250          //若存在setTimeout 就清理掉,若没有就定义一个
251         if (_checkHandle)
252         {
253             window.status="_checkHandle";
254             window.clearTimeout(_checkHandle);
255         }
256         _checkHandle=window.setTimeout(function (){checkData(sender)},300);
257
258 }
259
260 function checkData(sender)
261 {
262     //若这次输入的值和上次的不同
263     if (sender.value!=sender.lastValue)
264     {
265     //再次发送请求
266       LoadData(sender);
267     //新的value值替换旧的value
268       sender.lastValue=sender.value;
269     }
270 }
271 //再次请求数据
272 function  LoadData(sender)
273 {
274     sender.setAttribute("pageIndex",1);
275     var container = $get(sender.id + "Container");
276     var table = container.childNodes[1].childNodes[0];
277     if (table)
278     {
279         //内容块table存在就先剔除掉,也就是先剔除掉原先查询的值
280         table.parentNode.removeChild(table);
281     }
282     ComboBox_StartWebRequest(sender);
283     if ((sender.value!="")||(sender.getAttribute("EmptyIsLoad")))
284         {
285     }
286 }
287 /**
288  * ajax请求
289  * @param {Object} sender
290  */
291 var comboxReqeust=null;
292 function ComboBox_StartWebRequest(sender)
293 {
294     if (comboxReqeust!=null)
295     {
296         comboxReqeust.Abort();
297     };
298     //获取pageIndex、pageSize值
299     var pageIndex=(sender.getAttribute("pageIndex")?sender.getAttribute("pageIndex"):1);
300     var pageSize=(sender.getAttribute("pageSize")?sender.getAttribute("pageSize"):8);
301     //发出请求
302     comboxReqeust = new $WebRequest(baseUrl+sender.getAttribute("url"),
303         sender.getAttribute("paramName") + "="
304         + encodeURIComponent(sender.value)+"&CURPAGE="+pageIndex+"&pageIndex="
305         +pageIndex+"&pageSize="+pageSize+"&PAGESIZE="+pageSize,
306     function(result)
307     {
308         ComboBox_EndWebRequest(sender, result);
309     },null,false);
310     comboxReqeust.Start();
311 }
312 /**
313  * 显示值
314  * @param {Object} sender
315  * @param {Object} result
316  */
317 function ComboBox_EndWebRequest(sender, result)
318 {
319     //
320     if (!sender.getAttribute("isFocus")) return;
321     var container = $get(sender.id + "Container");
322     //创建标题行
323     var headerTable = container.childNodes[0].childNodes[0];
324     if (!headerTable)
325     {
326         //创建标题行table
327         headerTable=document.createElement("table");
328         headerTable.setAttribute("border", "0px");
329         headerTable.cellPadding = "0px";
330         headerTable.cellSpacing = "0px";
331         headerTable.style.width="100%";
332         container.childNodes[0].appendChild(headerTable);
333         //添加行   insertRow(-1) -1表示追加最后一行
334         var header=headerTable.insertRow(-1);
335         header.className="TableHeader";
336         //给标题行header添加表格cell
337         var headerCell=header.insertCell(-1);
338         headerCell.className="TableHeaderCell";
339         headerCell.noWrap=true;
340         headerCell.style.width="25px";
341         headerCell.innerHTML="&nbsp;&nbsp;";
342         //给表格填充值、设置相关属性
343         var columnNames=sender.getAttribute("columnName").split(",");
344         var columnWidths=sender.getAttribute("columnWidth").split(",");
345         for(var i=0;i<columnNames.length;i++)
346         {
347             var headerCell=header.insertCell(-1);
348             headerCell.className="TableHeaderCell";
349             headerCell.noWrap=true;
350             headerCell.align="center";
351             if (columnWidths[i])
352             {
353                headerCell.style.width=columnWidths[i];
354             }
355             headerCell.innerHTML=columnNames[i];
356         }
357     }
358     //创建内容行
359     var table = container.childNodes[1].childNodes[0];
360     if (!table)
361     {
362         var pageSize=sender.getAttribute("pageSize")?parseInt(sender.getAttribute("pageSize")):20;
363         var rowCount=result.totalCount?result.totalCount:result.totalCount;
364         var pageCount=Math.ceil(rowCount/pageSize)+1;
365         sender.setAttribute("pageCount",pageCount);
366         sender.setAttribute("rowCount",rowCount);
367         //创建内容table
368         table=document.createElement("table");
369         table.setAttribute("border", "0px");
370         table.cellPadding = "0px";
371         table.cellSpacing = "0px";
372         table.style.width="100%";
373         table.style.display="none";
374         container.childNodes[1].appendChild(table);
375     }
376     //获取lastIndex
377     var lastIndex=table.rows.length-1;
378     //在遍历result
379     if (sender.getAttribute("OnDataBind"))
380     {
381         eval(sender.getAttribute("OnDataBind"))(sender,result);
382     }
383     else
384     {
385        ComboBox_DataBind(sender,result);
386     }
387
388     table.style.display="block";
389     var rows=result.data;
390     if (!rows) return;
391     if (rows.length>0)
392     {
393         table.setAttribute("rowIndex", lastIndex+1);
394         container.childNodes[1].scrollTop=table.rows[lastIndex+1].offsetTop;
395     }
396 }
397 function ComboBox_ItemSelected(item,e)
398 {
399     eval(selection.getAttribute("command"))(selection,item.object);
400     ComboBox_Hidden(selection);
401 }
402 function ComboBox_DataBind(sender,result)
403 {
404     if (!result) return;
405     var container = $get(sender.id + "Container");
406     var headerTable = container.childNodes[0].childNodes[0];
407     var table = container.childNodes[1].childNodes[0];
408
409     var lastIndex=table.rows.length-1;
410     var rows=result.data;
411     if (!rows) return;
412     var fieldNames=sender.getAttribute("fieldName").split(",");
413     var aligns=new Array();
414     if (sender.getAttribute("align"))
415     {
416         aligns=sender.getAttribute("align").split(",");
417     }
418     var dataTypes=new Array();
419     if (sender.getAttribute("dataTypes"))
420     {
421         dataTypes=sender.getAttribute("dataTypes").split(",");
422     }
423     for (var i=0;i<rows.length;i++)
424     {
425         //table下创建row
426         var row=table.insertRow(-1);
427         row.className=(i==0?"TableRowOverSpeed":"TableRow");
428         row.onmouseover=function (){if (this.className!=‘TableRowSelected‘) this.className=‘TableRowOverSpeed‘};
429         row.onmouseout=function (){if (this.className!=‘TableRowSelected‘) this.className=‘TableRow‘};
430         row.onmousedown=function (e){if (e){event=e};event.cancelBubble=true;ComboBox_ItemSelected(this,event);};
431         //rwo select 单击方法
432         row.select=function (){ComboBox_ItemSelected(this,event);};
433         row.object=rows[i];
434         //创建 ”序列“ 列
435         var cell=row.insertCell(-1);
436         cell.className="TableCellIndex";
437         cell.innerHTML=i+lastIndex+2;
438         cell.style.width="30px";
439         cell.align="center";
440
441         for (var j=0;j<fieldNames.length;j++)
442         {
443             //创建表格cell
444             var cell=row.insertCell(-1);
445             cell.className="TableCell";
446             //创建表格cell宽
447             var width=headerTable.rows[0].cells[j+1].clientWidth;
448             cell.style.width=width+"px";
449             //设置align
450             if (aligns[j])
451             {
452                 cell.align=aligns[j];
453             }
454             //获取值
455             var value=rows[i][fieldNames[j]];
456             cell.title = rows[i][fieldNames[j]];
457             if (value)
458             {
459                if (dataTypes[j]=="float") value=parseFloat(value).toFixed(4);
460             }
461             //填充值
462             cell.innerHTML="<div style=‘overflow:hidden;width:"+width+"px;height:100%‘>"+(value?value:"&nbsp;")+"</div>";
463         }
464     }
465 }
时间: 2024-10-09 20:50:08

快速查询 jsp页面 和 js方法的相关文章

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行? 因为在解析时最新解析的就是JAVA代码,不管写哪里,都会最新被解析

C#后台程序与HTML页面中JS方法互调

此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互. 一.C#程序 1.在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中. 2.窗体代码添加 using System.Runtime.InteropServices;//和Html页面交互使用 在类的上一行添加 [ComVisible(true)]//和Html页面交互使用 在类的构造其中添加 this.webB.ObjectForScripting = this;

C#后台程序与HTML页面中JS方法互调(功能类似于Ajax中的DWR)

此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互. 一.C#程序 1.在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中. 2.窗体代码添加 using System.Runtime.InteropServices;//和Html页面交互使用 在类的上一行添加 [ComVisible(true)]//和Html页面交互使用 在类的构造其中添加 this.webB.ObjectForScripting = this;

jsp页面中创建方法

在JSP页面中是用 <%! void function(){ } %> 这种方式可以定义函数. 如果只使用 <% //todo %> 代码块中的代码在编译时将会都被加到 sevlet 中的 excute()  方法中. jsp页面中创建方法

iframe子页面js调用父页面js函数/父页面调用Iframe子页面中js方法

1.假设当前页面为a.html, iframe的src页面为b.html,其代码如下: 1 <span class="tag"><html> 2 <br></span><span class="tag"><head> 3 <br></span><span class="tag"><title></span><s

五种JSP页面跳转方法详解

1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,

Servlet处理业务逻辑,JSP处理视图渲染,Servlet处理请求后,把输出的结果转到JSP页面的解决方法

Servlet处理请求后,一般情况下,请求重定向或转发处理. (dispatcher)请求转发:也被称为服务器端重定向,是指服务器在处理多个request请求的过程中,先后委托多个JSP 接替处理的过程.用dispatcher的方法来实现,通过RequestDispatchers来实现,一个是forward,另一个是include.相应的JSP里实现dispatch的标签也有两个:<jsp:forward/>和<jsp:include/> Servlet跳转到JSP, reques

两个页面相同js方法兼容

1. a.js页面 1 //Js获取Url参数 2 function request(paras) { 3 var url = location.href; 4 var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&"); 5 var paraObj = {}; 6 for (i = 0; j = paraString[i]; i++) { 7 paraObj[j.s

jsp页面和js代码中使用sessionScope获取session值

场景:有些实体对象可以放到HttpSession对象中,保正在一个会话期间可以随时获取这个对象的属性,例如可以将登录用户的信息写入session,以保证页面随时可以获取并显示这个用户的状态信息.下面以此为例. 本文转自:http://blog.csdn.net/baidu_30809315/article/details/77159549 1.后台将用户这一实体对象写入session(HttpSession),这里是从拦截器中写入,代码中的userInfo是从单点登录服务器获取的登录用户信息 [