核心企業

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操作可以寫進項目模板中,從而實現對聯合主鍵的單表維護向導,但前提是屬性生成向導中要支持選擇多個主鍵才行。    
内蒙古 11 选 5 开奖结果 内蒙古11选5手机版 内蒙古11选5走势图表 内蒙古11选5基本走势图 内蒙古11选5开奖 内蒙古11选5历史记录 内蒙古11选5手机版 内蒙古11选5走势图表 内蒙古11选5基本走势图 内蒙古11选5开奖 内蒙古11选5历史记录