<SCRIPT>
  //====================================================================
  //点中列表框的单选框时触发当前事件
  //刷新编辑页面,并设置操作为 op_edit(修改), record_id 流水号
  //====================================================================
function choice_click( o )
{
  var cbs=o.parentNode.parentNode.cells[1].getElementsByTagName("input");
  for(var i=0;i<cbs.length;i++)cbs[i].checked=o.checked;   
}
function CCR(o){}
function aa () {
    var emp_name = document.getElementsByName("rec_emp_name");
    var dep_name = document.getElementsByName("rec_dep_name");
    var emp_id = document.getElementsByName("rec_emp_id");
    var dep_id = document.getElementsByName("rec_dep_id");
    for (var i = 0; i < emp_name.length; i++) {
    if (emp_name[i].checked) {
      //  alert(arr1[i].value + "   " + arr2[i].value + "    " + arr3[i].value);
    }
    }
}</SCRIPT>
<%
    String op = myprog.getParam( "op" );
    if(op.equals( "op_edit"))
    {
        String record_id = myprog.getParam( "record_id" );
        //System.out.println(record_id);
        sSql = "SELECT msg_id FROM S_Msg WHERE record_id='" + record_id + "'";
        System.out.println(sSql);
        String td[][] = db.selectA( sSql );
        String msg_id = td[0][0];
        sql="select rec_emp_name from S_RecMsg where msg_id='"+msg_id+"'";
        String emp_name[][] = db.selectA( sql );
        System.out.println(sql);
        //var checkboxs=document.getElementsByName("rec_emp_name"); 
        for(int i=0;i<emp_name.length;i++)
        {
        //    checkboxs.value=emp_name[0][i];
        }
        if( msg_id.equals("") ) 
        {
          out.println( "入口参数错误,请重新操作!" ); 
          return;
        }
    }
%>
<%!
String sSql="";
String sql="";//=============================================================================
//扩展列表分页显示类
//=============================================================================class myListTable extends jbs.html.listTable {
    public String getSelect(String curName)
    {
        String record_id = myprog.getParam( "record_id" );
        //System.out.println(record_id);
        sSql = "SELECT msg_id FROM S_Msg WHERE record_id='" + record_id + "'";
        System.out.println(sSql);
        String td[][] = db.selectA( sSql );
        String msg_id = td[0][0];
        sql="select rec_emp_name from S_RecMsg where msg_id='"+msg_id+"'";
        String emp_name[][] = db.selectA( sql );
        System.out.println(sql);
        String returnValue = ""; 
        for(int i = 0; i < emp_name.length; ++i)
        { 
            if(emp_name[i][0].equals(curName))
            { 
                returnValue = "checked"; 
                break; 
            } 
        }  
        return returnValue; 
    } 
  //系统查询数据库后,在生成页面前,自动调用此方法
  //可对结果集进行处理,提供如下变量可供使用:
  //resultRow 结果行数,resultCol 结果列数,resultData[][]查询结果二维数组
  public void BeforeMakeTable() {
    for( int i=0; i<resultRow; i++ ) {
        if(!resultData[i][0].equals("") ) 
        {
            String temp_id=resultData[i][0];
            String temp_name=resultData[i][1];
            resultData[i][0] = "<INPUT TYPE='checkbox' NAME='dep_name' ONCLICK='return choice_click(this)' value='"+resultData[i][1]+"'>" + resultData[i][1];
            String sql="select emp_id,emp_name from S_Emp where dep_id='"+temp_id+"'";
            
            String emp[][] = db.selectA(sql);
            resultData[i][1]="";
            for(int x=0; x<(emp.length); x++)
            {
                
                if(!emp[x][0].equals(""))
                {
                    resultData[i][1] += "<INPUT TYPE='checkbox' NAME='rec_emp_name' value='"+emp[x][1]+"'"+getString(emp[x][1])+">" + emp[x][1]+"<input type=hidden name=rec_emp_id value='"+emp[x][0]+"'><input type=hidden name=rec_dep_id value='"+temp_id+"'><input type=hidden name=rec_dep_name value='"+temp_name+"'>";
                }
            }
            
        }
      //备注
  //    resultData[i][2] = "<input name='emp_name' type=text class=textinput size=20>";    } 
  }}//结束类定义%><%
String searchWhere = "";//查询SQL WHERE条件
String searchUrl   = ""; //获取分页的附加参数
//表格字段名称, 宽度, 对齐
String tbTitle[][] = new String[][] {
  {"部门",    "5%",    "left"    },
  {"员工",    "50%",    "left"    },
//  {"选择",    "5%",    "left"    },
//  {"员工",    "10%",    "center"    },
//  {"员工",    "10%",    "left"    }, // {"员工",    "10%",    "left"    },};
//定义显示数据
//或者从数据库直接查询而来, 如 String tbData[][] = db.selectA( SQL );
sSql = "select dep_id,dep_name from S_Dep order by record_id";
String tbData[][] = db.selectA( sSql );//需要隐藏的字段
int tbHidden[] = new int[] {
  10
};//附加查询SQL WHERE 条件
String tbWhere = searchWhere;myListTable ap = new myListTable();
//ap.addForm( "form_table", "", "return false;" );//增加FORM
ap.setEnv( pageContext, db );//传入JSP页面对象, 数据库对象
ap.setTitle( tbTitle );//传入字段标题
ap.setChooseType( 0 );//第0列显示方式:0/正常,1/单选框,2/多选框
ap.setShowRecordNum( 9999 );//每页显示记录数
//ap.setSQL( tbFields, tbSqlFields, "V_Yf_Product_Detail", tbWhere, tbOrder );//字段,表名,SQL WHERE条件,SQL排序
//改为直接传入数据
ap.setData( tbData );                                //必须, 传入查询结果集
//ap.setPostUrl( searchUrl );//分页附加条件
ap.setHidden( tbHidden ); //隐藏
//ap.setDefaultValue( myprog.getParam( "defaultClickValue" ) ); //缺省选中值
ap.showNavigate( false );//显示导航条String sHtml = ap.getHtml();//输出结果//=============================================================================
//输出页面
//=============================================================================mytpl.setParam( "TO_DETAIL", sHtml );
%>这是整个JSP代码,怎样把让rec_emp_name复选框的value等于emp_name[i][]时让它选中?请各位高手帮忙解答一下

解决方案 »

  1.   

    if(!emp[x][0].equals(""))
    {
    String ls_checked=emp[x][1].equals(emp_name[i][1])?" checked ":"";
    resultData[i][1] += "<INPUT TYPE='checkbox' NAME='rec_emp_name' value='"+emp[x][1]+"'"+getString(emp[x][1])+ls_checked+">" + emp[x][1]+"<input type=hidden name=rec_emp_id value='"+emp[x][0]+"'><input type=hidden name=rec_dep_id value='"+temp_id+"'><input type=hidden name=rec_dep_name value='"+temp_name+"'>";
    }这个getString(emp[x][1])是啥?
      

  2.   

     public String getSelect(String curName)
        {
            String record_id = myprog.getParam( "record_id" );
            //System.out.println(record_id);
            sSql = "SELECT msg_id FROM S_Msg WHERE record_id='" + record_id + "'";
            System.out.println(sSql);
            String td[][] = db.selectA( sSql );
            String msg_id = td[0][0];
            sql="select rec_emp_name from S_RecMsg where msg_id='"+msg_id+"'";
            String emp_name[][] = db.selectA( sql );
            System.out.println(sql);
            String returnValue = ""; 
            for(int i = 0; i < emp_name.length; ++i)
            { 
                if(emp_name[i][0].equals(curName))
                { 
                    returnValue = "checked"; 
                    break; 
                } 
            }  
            return returnValue; 
        } 
    是这个方法,是别人说的,试了一下,还是不行,希望大哥指点一下
      

  3.   

    层次很不清楚,java类、javascript、jsp应该区别开,看得我头痛.
      

  4.   

    sql="select emp_id,rtrim(emp_name)as emp_name from S_Emp where dep_id='"+temp_id+"'";
    sql="select rtrim(rec_emp_name)as rec_emp_name from S_RecMsg where msg_id='"+msg_id+"'";
    sSql = "select dep_id,rtrim(dep_name)as dep_name from S_Dep order by record_id";把这些SQL语句都加上rtrim() --去除右边空格.