页面代码如下:
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
xmlns:w="http://www.apusic.com/jsf/widget" xmlns:layout="http://www.apusic.com/jsf/layout"
xmlns:ajax="http://www.apusic.com/jsf/ajax" xmlns:h="http://java.sun.com/jsf/html"
xmlns

m="http://www.apusic.com/jsf/misc" renderKitId="AJAX">
<w:head>
<w:script type="text/javascript" src="date.js"/>
<w:stylesheet src="/common/resources/examples.css"/>
<style>
#tab {
border:1px solid #aaa;
border-collapse:collapse;
width:80%;
}
#tab th{
border:1px solid #aaaaaa;
background:#ECE9D8;
border-collapse:collapse;
padding:5px;
text-align:left;
}
#tab td{
border:1px solid #d8d8d8;
border-collapse:collapse;
padding:5px;
}
.txt{
border:1px solid #888;
background:#ECE9D8;
}
.checkBg{
border:1px solid #aaaaaa;
background:#ECE9D8;
}
.checkTxt{
border:1px solid #aaa;
background:##d8d8d8;
}
.button {
border:1px solid #888;margin:5px 0px;
width:80px;background:#ECE9D8;height:22px;line-height:22px;
}
</style>
<om:useBean value="searchBean"></om:useBean>
</w:head>
<w:page>
<w:form>
<table border="0" width="100%" height="35" cellspacing="0" cellpadding="0">
<tr>
<td width="17%">
<div align="center">
<strong>请选择表名称:</strong>
</div>
</td>
<td width="27%">
<strong>
<select name="sTableName" id="sTableName" onchange="tableChange();">
</select>
</strong>
</td>
<td width="60%">
<strong>
<fieldset>
<legend>请选择表属性</legend>
<table id="tableColumn">
<tbody></tbody>
</table>
</fieldset>
</strong>
</td>
</tr>
</table>
<fieldset>
<legend>请选择查询条件</legend>
<input name="del_btn" id="del_btn" type="button" class="button" onclick="del();" value="del" />
<input name="save" id="save" type="button" class="button" onclick="saveResult();" value="save" />
<br/>
<table id="tab" >
<tbody>
<tr>
<td width="5%"><input type="checkbox" id="delall" onclick="alldell()"/></td>
<td width="15%">属性条件</td>
<td width="15%">操作符</td>
<td width="10%">输入值</td>
<td width="15%">比较属性</td>
<td width="15%">条件关系</td>
<td width="15%">括号标志</td>
</tr>
</tbody>
</table>
<p>
<w:textField jsvar="tableNameString" value="#{searchBean.tableNameString }" ></w:textField>
</p>
<p>
<w:textField jsvar="columnString" value="#{searchBean.columnString }" width="800"></w:textField>
</p>
<p>
<w:textField jsvar="whereString" value="#{searchBean.whereString }" width="800"></w:textField>
</p>
<p>
<w:button id="select" image="../../images/icon_refresh.gif" label="查询明细" />
<w:button id="total" image="../../images/icon_refresh.gif" label="查询统计" />
</p>
</fieldset>
</w:form>
<ajax:scripter script="#{searchBean.scripter }"></ajax:scripter>
</w:page>
<script>
//<![CDATA[
var tempValue="";
var tempText="";
var stringTemp="";
var tempType="";
var arrayColumnTypes;
function $(id) {return document.getElementById(id);}
function $F(name){return document.getElementsByTagName(name);}
//设置表名称
function setTableName()
{
var sTable = document.getElementById("sTableName");
for(var t = 0; t<arrayTable.length; t++)
{
var oItem = new Option(arrayTable[t][1],arrayTable[t][0]);
sTable.options.add(oItem);
}
}
//选择表改变属性列表
function tableChange(){
var sTable = document.getElementById("tab");
var t_body = sTable.childNodes[0];
//alert(t_body.childNodes.length);
if(t_body.childNodes.length>1){
for(var s=t_body.childNodes.length-1;s>0;s--){
t_body.removeChild(t_body.childNodes[s]);
}
}
tableNameString.setValue("");
whereString.setValue("");
columnString.setValue("");
stringTemp="";
setTableColumn();
}
//设置表属性
function setTableColumn()
{
var ttSelect1 = $('sTableName');
var tableStr = ttSelect1.options[ttSelect1.selectedIndex].value;
for(var q=0;q<arrayTableColumn.length;q++){
if(arrayTableColumn[q][0] == tableStr){
//alert(arrayTableColumn[q][1]);
arrayColumn = arrayTableColumn[q][1];
}
}
for(var k=0;k<arrayTableColumnType.length;k++){
if(arrayTableColumnType[k][0] == tableStr){
//alert(arrayTableColumn[k][1]);
arrayColumnTypes = arrayTableColumnType[k][1];
}
}
var tbl_1 = $('tableColumn');
var tbody_1 = document.createElement("TBODY");
tbl_1.removeChild(tbl_1.childNodes[0]);
tbl_1.appendChild(tbody_1);
for(var j = 0; j<arrayColumn.length/4;j++)
{
var otr = document.createElement("TR");
for(var i=0; i<4 &&(j*4+i)<arrayColumn.length; i++)
{
var checkTd=document.createElement("td");
var k = (j*4+i);
//alert(arrayColumn[k]);
checkTd.innerHTML = '<input type="checkbox" class="check" onclick="checkboxClick(\''+arrayColumn[k][0]+'\');" id="checkItemBox_'+arrayColumn[k]+(k+1)+'" name="'+arrayColumn[k][1]+'"/><a href="#" onclick="checkClick(\''+arrayColumn[k][0]+'\',\''+arrayColumn[k][1]+'\');" >'+arrayColumn[k][1]+'</a>';
otr.appendChild(checkTd);
}
tbody_1.appendChild(otr);
}
}
setTableName();//初始化表名称
setTableColumn();//初始化表属性
//勾选复选框传值
function checkboxClick(str)
{
var tempCheckbox1;
var event = window.event || arguments.callee.caller.arguments[0];
//for(var i=0;i<arrayColumn.length;i++)
//{
tempCheckbox1 = Object(obj = event.srcElement ? event.srcElement : event.target);
if(tempCheckbox1.checked)
{
stringTemp = str+","+stringTemp;
//tempCheckbox1.checked=false;
}
//}
}
//点链接添加行操作
function checkClick(str1,str2)
{
//alert(str1);
//alert(str2);
tempValue = str1;
tempText = str2;
for(var i=0;i<arrayColumnTypes.length;i++){
if(arrayColumnTypes
[0]==str1){
//alert(arrayColumnTypes[1]);
tempType = arrayColumnTypes[1];
}
}
add();
}
//执行添加行操作
function add()
{
var otr = document.getElementById("tab").insertRow(-1);
var checkTd=document.createElement("td");
checkTd.innerHTML = '<input type="checkbox" class="check" onclick="ccolor()" name="checkItem"/>';
var otd1 = document.createElement("td");
var oSelect1 = document.createElement("select");
oSelect1.name = 'infoSelect1_txt';
oSelect1.id = 'infoSelect1_txt'+($('tab').rows.length-1)+'' ;
var oOpt11 = document.createElement("OPTION");
oOpt11.value = tempValue;
oOpt11.text = tempText;
oSelect1.options[oSelect1.options.length] = oOpt11;
otd1.appendChild(oSelect1);
var otd2 = document.createElement("td");
var oSelect2 = document.createElement("select");
oSelect2.name = 'infoSelect2_txt';
oSelect2.id = 'infoSelect2_txt'+($('tab').rows.length-1)+'' ;
var oOpt21 = document.createElement("OPTION");
oOpt21.value = '1';
oOpt21.text = '大于';
var oOpt22 = document.createElement("OPTION");
oOpt22.value = '2';
oOpt22.text = '大于等于';
var oOpt23 = document.createElement("OPTION");
oOpt23.value = '3';
oOpt23.text = '小于';
var oOpt24 = document.createElement("OPTION");
oOpt24.value = '4';
oOpt24.text = '小于等于';
var oOpt25 = document.createElement("OPTION");
oOpt25.value = '5';
oOpt25.text = '等于';
var oOpt26 = document.createElement("OPTION");
oOpt26.value = '6';
oOpt26.text = '包含';
var oOpt27 = document.createElement("OPTION");
oOpt27.value = '7';
oOpt27.text = '前包含';
var oOpt28 = document.createElement("OPTION");
oOpt28.value = '8';
oOpt28.text = '后包含';
var oOpt29 = document.createElement("OPTION");
oOpt29.value = '9';
oOpt29.text = 'IN';
oSelect2.options[oSelect2.options.length] = oOpt21;
oSelect2.options[oSelect2.options.length] = oOpt22;
oSelect2.options[oSelect2.options.length] = oOpt23;
oSelect2.options[oSelect2.options.length] = oOpt24;
oSelect2.options[oSelect2.options.length] = oOpt25;
oSelect2.options[oSelect2.options.length] = oOpt26;
oSelect2.options[oSelect2.options.length] = oOpt27;
oSelect2.options[oSelect2.options.length] = oOpt28;
oSelect2.options[oSelect2.options.length] = oOpt29;
otd2.appendChild(oSelect2);
alert(tempType);
var otd3 = document.createElement("td");
if(tempType=="1"){
otd3.innerHTML = '<input type="text" class="txt" name="infoName_txt" id="infoName_txt'+($('tab').rows.length-1)+'" maxlength="30" value=""/>';
}
if(tempType=="2"){
}
if(tempType=="3"){
otd3.innerHTML = '<input type="text" class="txt" onfocus="setday(this);" name="infoName_txt" id="infoName_txt'+($('tab').rows.length-1)+'" maxlength="30" value=""/>';
}
if(tempType=="4"){
}
var otd4 = document.createElement("td");
var oSelect3 = document.createElement("select");
oSelect3.name = 'infoSelect3_txt';
oSelect3.id = 'infoSelect3_txt'+($('tab').rows.length-1)+'' ;
var oOpt311 = document.createElement("OPTION");
oOpt311.value = '';
oOpt311.text = '未选择';
oSelect3.options[oSelect3.options.length] = oOpt311;
for(var z=0;z<arrayColumn.length;z++){
var oOptt = "oOpt3";
oOptt=oOptt+z;
//alert(oOptt);
//alert(arrayColumn.length);
oOptt = document.createElement("OPTION");
oOptt.value = arrayColumn[z][0];
oOptt.text = arrayColumn[z][1];
oSelect3.options[oSelect3.options.length] = oOptt;
}
otd4.appendChild(oSelect3);
var otd5 = document.createElement("td");
var oSelect4 = document.createElement("select");
oSelect4.name = 'infoSelect4_txt';
oSelect4.id = 'infoSelect4_txt'+($('tab').rows.length-1)+'' ;
var oOpt41 = document.createElement("OPTION");
oOpt41.value = '';
oOpt41.text = '未选择';
var oOpt42 = document.createElement("OPTION");
oOpt42.value = '0';
oOpt42.text = '并且';
var oOpt43 = document.createElement("OPTION");
oOpt43.value = '1';
oOpt43.text = '或者';
oSelect4.options[oSelect4.options.length] = oOpt41;
oSelect4.options[oSelect4.options.length] = oOpt42;
oSelect4.options[oSelect4.options.length] = oOpt43;
otd5.appendChild(oSelect4);
var otd6 = document.createElement("td");
var oSelect5 = document.createElement("select");
oSelect5.name = 'infoSelect5_txt';
oSelect5.id = 'infoSelect5_txt'+($('tab').rows.length-1)+'' ;
var oOpt51 = document.createElement("OPTION");
oOpt51.value = '';
oOpt51.text = '未选择';
var oOpt52 = document.createElement("OPTION");
oOpt52.value = '0';
oOpt52.text = '括号开始';
var oOpt53 = document.createElement("OPTION");
oOpt53.value = '1';
oOpt53.text = '括号结束';
oSelect5.options[oSelect5.options.length] = oOpt51;
oSelect5.options[oSelect5.options.length] = oOpt52;
oSelect5.options[oSelect5.options.length] = oOpt53;
otd6.appendChild(oSelect5);
otr.appendChild(checkTd);
otr.appendChild(otd1);
otr.appendChild(otd2);
otr.appendChild(otd3);
otr.appendChild(otd4);
otr.appendChild(otd5);
otr.appendChild(otd6);
}
function ccolor()
{
var c1 = document.getElementsByName('checkItem');
for(var i=0; i<c1.length; i++)
if(c1.checked)
{
c1.parentNode.parentNode.className="checkBg";
c1.parentNode.nextSibling.firstChild.className="checkTxt";
c1.parentNode.nextSibling.nextSibling.firstChild.className="checkTxt";
}
else{
c1.parentNode.parentNode.className="";
c1.parentNode.nextSibling.firstChild.className="";
c1.parentNode.nextSibling.nextSibling.firstChild.className="";
}
}
//执行删除行操作
function del()
{
var c = document.getElementsByName('checkItem');
var idArray = new Array();
for(var i=0; i<c.length; i++)
if(c.checked)
idArray.push(i);
if(idArray.length==0){
alert("请选择记录后再执行删除操作");
return;
}
var rowIndex;
var nextDiff =0;
for(j=0;j<idArray.length;j++)
{
rowIndex = idArray[j]+1-nextDiff++;
//alert(rowIndex);
document.getElementById("tab").deleteRow(rowIndex);
}
saveResult();
}
//执行保存行数据操作
function saveResult()
{
var ttSelect1 = $('sTableName');
var tableStr = ttSelect1.options[ttSelect1.selectedIndex].value;
//var columnString = $("columnString");
//var whereString = $("whereString");
var checkboxs = document.getElementsByName("checkItem");
var ttab = document.getElementsByName("infoName_txt");
var m=0,n=0;
var idArray = new Array();
for(i=0;i<checkboxs.length;i++)
{
var ttSelect1 = $('infoSelect1_txt'+(i+1));
var ttSelect2 = $('infoSelect2_txt'+(i+1));
var ttSelect3 = $('infoSelect3_txt'+(i+1));
var ttSelect4 = $('infoSelect4_txt'+(i+1));
var ttSelect5 = $('infoSelect5_txt'+(i+1));
var tt = ttSelect5.options[ttSelect5.selectedIndex].value;
if(tt=="0"){
m++;
}
if(tt=="1"){
n++;
}
idArray.push(ttSelect1.options[ttSelect1.selectedIndex].value + "," + ttSelect2.options[ttSelect2.selectedIndex].value + "," + ttSelect3.options[ttSelect3.selectedIndex].value+ "," + ttab.value + "," + ttSelect4.options[ttSelect4.selectedIndex].value+ "," + ttSelect5.options[ttSelect5.selectedIndex].value);
}
if(((m==0)&&(n==0))||(m==n)){
//alert(stringTemp);
//alert(idArray.join(";"));
tableNameString.setValue(tableStr);
whereString.setValue(idArray.join(";"));
columnString.setValue(stringTemp);
//alert(columnString.value);
}else{
alert("要么没有括号,要么括号开始和括号结束要配对才行");
return ;
}
}
function alldell()
{
var des =document.getElementsByName('checkItem');
for(var i=0;i<des.length;i++)
{
if(des.checked=document.getElementById('delall').checked){
des.parentNode.parentNode.className="checkBg";
des.parentNode.nextSibling.firstChild.className="checkTxt";
des.parentNode.nextSibling.nextSibling.firstChild.className="checkTxt";
}
else{
des.parentNode.parentNode.className="";
des.parentNode.nextSibling.firstChild.className="";
des.parentNode.nextSibling.nextSibling.firstChild.className="";
}
}
}
//打开一个弹出页面
function openwin(url)
{
window.open (url, "newwindow", "height=500, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no" )
}
//]]>
</script>
</f:view>
其中<w:script type="text/javascript" src="date.js"/>这是我要引入js的代码
我后面又测了下,我修改date.js后,再下载,好像下载的文件还是以前的,不是我修改后的版本。
[ 本帖最后由 liuxinmiao2009 于 2010-3-10 13:00 编辑 ]