<object id="e3rb0"><sup id="e3rb0"></sup></object>

<th id="e3rb0"><option id="e3rb0"></option></th>
  • <center id="e3rb0"><small id="e3rb0"></small></center>

    <th id="e3rb0"><option id="e3rb0"></option></th>
  • <code id="e3rb0"><small id="e3rb0"></small></code>
  • <del id="e3rb0"><small id="e3rb0"></small></del>

    核心企业

    CORE ENTERPRISE
    当前位置:网站首页>软件开发 > 正文内容

    联合主键的单表维护解决方案

     

    通常我们的结果页面都会设置一个复选框,当用户选择某条记录时,把该条记录的主键提交到后台展现逻辑。如下: <TD align="center"> <logic:present id="ResultSet" property="BNDICT_T_Dictionary/businTypeID"> <html:checkbox styleId="checkall" name="list[@name="update"]/BNDICT_T_Dictionary/businTypeID" id="ResultSet" property="BNDICT_T_Dictionary/businTypeID" indexed="true" /> </logic:present> </TD>

           但是有些表是联合主键,如BNDICT_T_Dictionary表,另一个主键是businID,是不是可以再加一个复选框来提交另一个主键值呢?如下:

    <TD align="center"> <logic:present id="ResultSet" property="BNDICT_T_Dictionary/businTypeID"> <html:checkbox styleId="checkall" onclick="checkOther("checkall","checktwo")" name="list[@name="update"]/BNDICT_T_Dictionary/businTypeID" id="ResultSet" property="BNDICT_T_Dictionary/businTypeID" indexed="true" />  </logic:present> <logic:present id="ResultSet" property="BNDICT_T_Dictionary/businID"> <html:checkbox styleId="checktwo" style="width:0px;" name="list[@name="update"]/BNDICT_T_Dictionary/businID" id="ResultSet" property="BNDICT_T_Dictionary/businID" indexed="true" /> </logic:present> </TD> 为了在页面上只显示一个复选框,所以我们将第二个复选框的宽度设为0px使其隐藏,当用户选中某条记录前的复选框时,我们通过JS函数使这条记录对应的隐藏的复选框也选中,同样当用户取消选中时,也同样使隐藏的复选框取消选中。需要在页面中增加如下JS函数。     function checkOther(checkall,checktwo){     var checkall = document.getElementsByName(checkall);         var checktwo = document.getElementsByName(checktwo);                     for(var i=0;i<checkall.length;i++)         {             if(checkall[i].checked == true){                 checktwo[i].checked = true;                        }else if(checkall[i].checked == false){                 checktwo[i].checked = false;                           }         }     }        另外我们还要重构全选函数checkAll(),并修改全选框的onclick属性值。 <TD align="center"> <logic:notEqual property="list[@type="BNDICT_T_Dictionary"]/@rowNum" value="0"> <html:checkbox name="chkAll" onclick="checkAll("checkall","checktwo")"/> </logic:notEqual>选择</TD>  
    function checkAll(checkall,checktwo)     {         var checkall = document.getElementsByName(checkall);         var checktwo = document.getElementsByName(checktwo);               var ck = window.event.srcElement;             if(ck.checked==true)         {             for(var i=0;i<checkall.length;i++)             {                 checkall[i].checked = true;                 checktwo[i].checked = true;                        }                   }else{             for(var i=0;i<checkall.length;i++)             {                 checkall[i].checked = false;                 checktwo[i].checked = false;                           }                   }     }      通过传入后台的XML总线上的数据,可以看出两个主键的ID都传到了后台,下面只要在展现逻辑中增加一个数据设置即可 为了保证程序的绝对安全,在修改、删除之前要判断所有主键是否都有值。 另外新增时不能使用主键自动获取。 还有一个好处是,这种页面上的JS操作可以写进项目模板中,从而实现对联合主键的单表维护向导,但前提是属性生成向导中要支持选择多个主键才行。    
    上海快三计划网站_上海快三计划网站|官网_首页