?? selectactivex1.jsp
字號:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="pub.Select.SelectActiveX"%>
<%@ page import="pub.Select.Option"%>
<%@ page import="java.util.Collection"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.util.Iterator"%>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>
<%
request.setCharacterEncoding("gb2312");
String theTitle="";
String multiObj="";
String sSelTxt="";
theTitle=SelectActiveX.ReNull(request.getParameter("theTitle"));
multiObj=SelectActiveX.ReNull(request.getParameter("multiObj"));
sSelTxt=SelectActiveX.ReNull(request.getParameter("sSelTxt"));
%>
<html>
<head>
<link rel="stylesheet" href="dbgrid.css" type="text/css">
<meta http-equiv="expires" content="0">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
<title><%=theTitle%></title>
<script language="JavaScript">
<!--
<%
if(!SelectActiveX.ReNull(request.getParameter("theTitleField")).trim().equals("")){
%>
var idx = 1;//從表格數據開始的行ID:“TR”+idx
<%
}else{
%>
var idx = 0;
<%}%>
var trOrg="";
function selectThis(theRowObj)
{
if (ListTable.rows.length==1) return;
if (trOrg!="")
ListTable.rows(trOrg).className="Normal";
theRowObj.className="selectColor";
trOrg=theRowObj.id;
}
function setTxt()
{
if(ListTable.rows[idx]!=null){
if (ListTable.rows.length==0) return;
var sTxt;
idx=getRow();
//ListTable.rows[idx].cells[0].firstChild.checked = !ListTable.rows[idx].cells[0].firstChild.checked;
//sTxt=ListTable.rows[idx].cells[0].innerText;
//var s = "";
//var o = ListTable.rows[idx].cells[0].firstChild;
//for(var i in o)
// s += i + "=" + o[i] + " ";
//alert(s);
//selTxt.value=sTxt;
}
}
function SelectValue()
{
var multiObj,sR,sTmp;
multiObj="<%=multiObj%>";
/*if(ListTable.rows[idx]!=null){
if (idx>=0 && ListTable.rows.length>0)
{
sR=ListTable.rows[idx].cells[0].val;
if (sR+"!"=="undefined!")
sR=ListTable.rows[idx].cells[0].innerText;
if (multiObj=="Y")
{
for (i=1;i<ListTable.rows[idx].cells.length;i++)
{
sTmp=ListTable.rows[idx].cells[i].val;
if (sTmp+"!"=="undefined!")
sTmp=ListTable.rows[idx].cells[i].innerText;
sR+=","+String.fromCharCode(160,160)+sTmp;
}
}
alert(sR);
//returnValue=sR + "AAA";
}
}*/
sR="";
for(var i = 1;i < ListTable.rows.length;i++)
if(ListTable.rows[i]!=null)
if(ListTable.rows[i].cells[0].firstChild.checked)
{
if(sR != "")sR += ",";
sR += ListTable.rows[i].cells[1].innerText;
}
returnValue=sR;
window.close();
}
function enabledBtn()
{
var idx;
idx=theSel.selectedIndex;
if (idx>=0)
document.all.item("btnOk").disabled=0;
}
//得到當前選擇的行號(從0開始)
function getRow()
{
if (trOrg==null)
idx=0;
else
idx=trOrg.substring(2,trOrg.length);
return idx;
}
function getData(idx)
{
if (event.keyCode==13 || event.which==13)
{
SelectValue();
}
}
function ModifySize()
{
info.innerText="";
ScrollArea.className="scrollTable";
var iHeight,iWidth;
var iScrHeight,iScrWidth;
iScrHeight=screen.height;
iScrWidth=screen.width;
iHeight=parseInt(ListTable.offsetHeight)+80;//parseInt(selTxt.offsetHeight)+80;
if (iHeight>iScrHeight/2)
iHeight=iScrHeight/2;
self.dialogHeight=iHeight+"px";
iWidth=parseInt(ListTable.offsetWidth)+27;
if (iWidth>iScrWidth*2/3)
iWidth=iScrWidth*2/3;
self.dialogWidth=iWidth+"px";
//selTxt.size=parseInt(theSel.offsetWidth/8);
var testElement = document.getElementById("ScrollArea");
if (testElement!=null)
initScrollTable(testElement);
//selTxt.focus();
//var r =selTxt.createTextRange();
//r.moveStart('character',selTxt.value.length);
//r.collapse(true);
//r.select();
}
function searchData(s)
{
var left=0,right=0,mid=idx;
var key="",val="",lenMin=0,iRowTmp=0;
var datas;
var lenKey,lenVal;
var bFind=false;
datas=ListTable;
key=s.toUpperCase();
lenKey=s.length;
left=0;
right=datas.rows.length -1;
//先查找全字匹配的,如果有,直接返回結果
while (left<=right)
{
mid=parseInt((left+right)/2);
val=datas.rows[mid].cells[0].innerText.toUpperCase();
if (key<val)
right=mid -1;
else if (key>val)
left=mid+1;
else if (key==val)
{
return mid;
}
}
//如果沒有全字匹配的,查找前部分匹配的.
//這里邊分兩種情況,一種是輸入的字符串是不完全的,這樣要查找的是
//匹配這個字符串的第一條記錄
//另一種情況是轉入的字符串超過能夠匹配的字符串,這樣需要把后邊無用的
//字符除去再進行匹配
lenMin=Math.min(lenKey,val.length);
if (key.substring(0,lenMin)!=val.substring(0,lenMin))
mid++;
return mid;
}
function getRelateData(theObj)
{
var cidx=0;
var tempStr="";
var sel=ListTable;
var theLength=0;
var iKeyCode;
iKeyCode=event.keyCode;
if (iKeyCode==38)
//上箭頭
movePos(-1);
else if(iKeyCode==40)
//下箭頭
movePos(1);
else if (iKeyCode==13 || event.which==13)
SelectValue();
else
{
tempStr=theObj.value;
theLength=tempStr.length;
if (tempStr=="" || theLength==0)
{
cidx=idx;
}else
{
cidx=searchData(tempStr);
}
var ele=document.getElementById("TR"+cidx);
if (ele!=null)
{
selectThis(ele);
ele.scrollIntoView(true);
}
}
}
function movePos(iPos)
{
var cidx=getRow();
cidx=parseInt(idx)+parseInt(iPos);
if(cidx<0) cidx=idx;
if(document.getElementById("TR"+cidx.toString())!=null)
{
selectThis(document.getElementById("TR"+cidx.toString()));
}
else
{
cidx = idx;
selectThis(document.getElementById("TR"+cidx.toString()));
}
setTxt();
}
function initScrollTable(oElement)
{
if (ListTable.rows.length>0)
{
var head = oElement.firstChild;
var body = oElement.lastChild;
body.style.height = oElement.clientHeight - head.offsetHeight;
}
}
//-->
</script>
</head>
<body topmargin="2" leftmargin="2" onload="ModifySize();<%//getRelateData(selTxt);%>" scroll="no"
onkeyup="if(event.keyCode==27 || event.which==27) top.close();" class="body_main">
<label id=info><font size="2" color=#0000ff>請稍候,正在初始化...</font></label>
<div id="ScrollArea" name="ScrollArea" class="hide">
<span class="scrollTableHead" id="HeaderSpan" name="HeaderSpan">
<table cellspacing="0" frame="border" id="HeaderTable" name="HeaderTable" >
<thead>
<tr>
<td class="Info">
<input type="button" value="確定" name="btnOk" onClick="SelectValue();" style="width:60"><input type="button" value="返回" onClick="top.close();" style="width:60">
</td>
</tr>
</thead>
</table>
</span>
<span class="DDTable" name="BodySpan" name="theSel" id="theSel">
<table cellpadding="0" cellspacing="0" name="ListTable" id="ListTable">
<tbody>
<%
SelectActiveX sa=new SelectActiveX();
Collection list = sa.getSelectActivX(request);
if(list != null)
{
Iterator i = list.iterator();
Collection dlist = null;
int index = 0;
boolean b = false;
while(i.hasNext())
{
dlist = (Collection)i.next();
if(index==0 && !SelectActiveX.ReNull(request.getParameter("theTitleField")).trim().equals("")){
%>
<tr bgcolor="#CCCCCC">
<%
}else{
%>
<tr class="Normal" id="TR<%=index%>" onclick="selectThis(this);setTxt();">
<%
}
//onclick="selectThis(this);setTxt();" onDblClick="SelectValue();" onkeypress="getData();"
Iterator it = dlist.iterator();
Option o = null;
if(it.hasNext())
{
o = (Option)it.next();
String id1 = "" + o.textField;
o = (Option)it.next();
String value1 = "" + o.textField;
%>
<td val="<%=value1%>" class=<%=o.isHide?"DDHide":"DDNormal"%> >
<%
if(b)
{
%>
<input type='checkbox'<%
if(sSelTxt.indexOf("" + value1) >=0)out.print("checked");
%>>
<%}%>
</td>
<td val="<%=value1%>" class=<%=o.isHide?"DDHide":"DDNormal"%> ><nobr><%=value1%></nobr></td>
<%
}
%>
</tr>
<%
b = true;
index++;
}
}
%>
</tbody>
</table>
</span>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -