mvc 架構

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            74 Posts :: 60 Stories :: 5 Comments :: 0 Trackbacks
          posted on 2007-12-30 15:44 e全 閱讀(190) 評論(0)  編輯  收藏

          <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?3.2?Final//EN">
          <HTML>
          <HEAD>
          <TITLE>XML?Editer</TITLE>
          <HTA:APPLICATION?ID="oHTA"
          APPLICATIONNAME="myApp"
          BORDER="thick"
          BORDERSTYLE="normal"
          CAPTION="yes"
          ContextMenu="yes"
          ICON=""
          MAXIMIZEBUTTON="yes"
          MINIMIZEBUTTON="yes"
          scroll="no"
          selection="no"
          SHOWINTASKBAR="yes"
          SINGLEINSTANCE="yes"
          SYSMENU="yes"
          VERSION="1.0"
          WINDOWSTATE="normal"
          >

          <style?type="text/css">
          </style>
          </HEAD>

          <script?language="javascript">

          //?load?the?xml?file
          var?xmlDoc?=?new?ActiveXObject("Msxml2.DOMDocument");
          xmlDoc.async?=?false;
          xmlDoc.resolveExternals?=?false;
          xmlDoc.load("rule.xml");

          //?load?the?xsl?file
          var?xslDoc?=?new?ActiveXObject("Msxml2.FreeThreadedDOMDocument");
          xslDoc.async?=?false;
          xslDoc.resolveExternals?=?false;
          xslDoc.load("rule.xsl");

          //?create?the?xslt?object
          var?xslt?=?new?ActiveXObject("Msxml2.XSLTemplate");
          xslt.stylesheet?=?xslDoc;
          var?xslProc?=?xslt.createProcessor();
          xslProc.input?=?xmlDoc;

          var?checked_count?=?0;
          var?cur_page?=?1;
          var?total_page?=?1;

          function?OutputDocument(number){
          xslProc.addParameter("ename",?number);
          xslProc.addParameter("startno",?(cur_page?-?1)*10);
          xslProc.addParameter("endno",?cur_page*10);
          xslProc.transform();

          return?xslProc.output;
          }

          function?delete_node(node){
          if(?node.hasChildNodes()?)?{?
          var?kids?=?node.childNodes;?
          for(var?i=0;i<kids.length;i++)?{?
          delete_node(kids);
          }
          }
          node.parentNode.removeChild(node);
          }

          function?delete_rule(id){
          var?node?=?xmlDoc.selectSingleNode("/rules/rule[event/id="+id+"]");
          delete_node(node);
          }

          function?modify_node(node){
          node.selectSingleNode("event/id").text?=?modify_id.value;
          node.selectSingleNode("event/name").text?=?modify_name.value;
          if(?modify_state.checked?)?{
          node.selectSingleNode("enable").text?=?"true";
          }?else?{
          node.selectSingleNode("enable").text?=?"false";
          }
          }

          function?modify_rule(id){
          var?node?=?xmlDoc.selectSingleNode("/rules/rule[event/id="+id+"]");
          modify_node(node);
          }

          function?add_rule(){
          var?id?=?xmlDoc.createElement("id");
          id.appendChild(xmlDoc.createTextNode(add_id.value));
          var?name?=?xmlDoc.createElement("name");
          name.appendChild(xmlDoc.createTextNode(add_name.value));

          var?event?=?xmlDoc.createElement("event");
          event.appendChild(id);
          event.appendChild(name);

          var?enable?=?xmlDoc.createElement("enable");
          if(?add_state.checked?)?{
          enable.appendChild(xmlDoc.createTextNode("true"));
          }?else?{
          enable.appendChild(xmlDoc.createTextNode("false"));
          }

          var?rule?=?xmlDoc.createElement("rule");
          rule.appendChild(event);
          rule.appendChild(enable);

          var?parent?=?xmlDoc.selectSingleNode("/rules");
          if(?parent.hasChildNodes()?)?{
          parent.insertBefore(rule,?parent.firstChild);
          }?else?{
          parent.appendChild(rule);
          }
          }

          function?gotoPage(pageno){
          if(?pageno?<?1?)?{
          cur_page?=?1;
          }?else?if(?pageno?>=?total_page?)?{
          cur_page?=?total_page;
          }?else?{
          cur_page?=?pageno;
          }
          Transform();
          }

          function?saveXML(){
          xmlDoc.save("rule.xml");
          }

          function?protectsubmit(val){
          if(?val?==?1?)?{?//add
          if(?add_id.value?<?10000?||?add_name.value?==?""?)?{
          window.alert("事件號必須是5位整數且事件名不能為空");
          }?else?if(?xmlDoc.selectSingleNode("/rules/rule/event/id[.?=?"?+?add_id.value?+?"]")?)?{
          window.alert("事件號"?+?add_id.value?+?"已經存在");
          }?else?{
          add_rule();
          saveXML();
          Transform();
          }
          }?else?if(?val?==?2?)?{?//modify
          var?id?=?viewTable.rows[getFirstCheckedLine()].cells[2].innerText;
          if(?modify_id.value?<?10000?||?modify_name.value?==?""?)?{
          window.alert("事件號必須是5位整數且事件名不能為空");
          }?else?if(?id?!=?modify_id.value?&&?xmlDoc.selectSingleNode("/rules/rule/event/id[.?=?"?+?modify_id.value?+?"]")?)?{
          window.alert("事件號"?+?modify_id.value?+?"已經存在");
          }?else?{
          if(?confirm("確認修改?")?)?{
          modify_rule(id);
          saveXML();
          Transform();
          }
          }
          }?else?if(?val?==?3?)?{?//delete
          if(?!confirm("確認刪除?")?)?{
          return;
          }
          for(?var?i?=?1;?i?<?viewTable.rows.length;?i++?)?{
          var?id?=?viewTable.rows.cells[2].innerText;
          if(?eval("viewchk_"?+?id?+?".checked")?==?true?)?{
          delete_rule(id)
          }
          }
          saveXML();
          Transform();
          }?else?if(?val?==?4?)?{?//select?all
          checked_count?=?viewTable.rows.length?-?1;
          for(?var?i?=?1;?i?<?viewTable.rows.length;?i++?)?{
          var?id?=?viewTable.rows.cells[2].innerText;
          eval("viewchk_"?+?id?+?".checked?=?true");
          }
          changeState();
          }?else?if(?val?==?5?)?{?//cancel?all
          checked_count?=?0;
          for(?var?i?=?1;?i?<?viewTable.rows.length;?i++?)?{
          var?id?=?viewTable.rows.cells[2].innerText;
          eval("viewchk_"?+?id?+?".checked?=?false");
          }
          changeState();
          }
          }

          function?getFirstCheckedLine(){
          for(?var?i?=?1;?i?<?viewTable.rows.length;?i++?)?{
          var?id?=?viewTable.rows.cells[2].innerText;
          if(?eval("viewchk_"?+?id?+?".checked")?==?true?)?{
          return?i;
          }
          }
          return?0;
          }

          function?checkOVItem(val){
          if(?eval("viewchk_"?+?val+".checked")?==?true?)?{
          checked_count++;
          }?else?{
          checked_count--;
          }
          changeState();
          }

          function?changeState(){
          if(?checked_count?)?{
          delete_btn.disabled?=?false;
          cancel_all_btn.disabled?=?false;
          }?else?{
          delete_btn.disabled?=?true;
          cancel_all_btn.disabled?=?true;
          }
          if(?(checked_count?+?1)?==?viewTable.rows.length?)?{
          select_all_btn.disabled?=?true;
          }?else?{
          select_all_btn.disabled?=?false;
          }

          if(?checked_count?==?1?)?{
          modify_btn.disabled?=?false;
          modify_id.disabled?=?false;
          modify_name.disabled?=?false;
          modify_state.disabled?=?false;
          var?id?=?getFirstCheckedLine();
          modify_id.value?=?viewTable.rows(id).cells(2).innerText;
          modify_name.value?=?viewTable.rows(id).cells(3).innerText;
          if(?viewTable.rows(id).cells(1).innerText?==?"有效"?)?{
          modify_state.checked?=?true;
          }?else?{
          modify_state.checked?=?false;
          }
          }?else?{
          modify_btn.disabled?=?true;
          modify_id.disabled?=?true;
          modify_name.disabled?=?true;
          modify_state.disabled?=?true;
          modify_id.value="請選擇一條規則";
          modify_name.value="請選擇一條規則";
          }
          }

          function?showPageInfo(){
          if(?total_item.value?==?0?)?{
          total_page?=?1;
          }?else?{
          total_page?=?Math.floor((9?+?parseInt(total_item.value))?/?10);
          }
          var?txt?=?"?共"+total_item.value+"條記錄";
          var?prev_page?=?cur_page?-?1;
          var?next_page?=?parseInt(cur_page)?+?1;
          if(?cur_page?>?1?)?{
          txt?+=?"?<input?type='button'?value='<'?onClick='gotoPage("?+?prev_page?+?")'/>"
          }?else?{
          txt?+=?"?<input?type='button'?value='<'?onClick='gotoPage("?+?prev_page?+?")'?disabled/>"
          }
          if(?cur_page?<?total_page?)?{
          txt?+=?"?<input?type='button'?value='>'?onClick='gotoPage("?+?next_page?+?")'/>"
          }?else?{
          txt?+=?"?<input?type='button'?value='>'?onClick='gotoPage("?+?next_page?+?")'?disabled/>"
          }

          txt?+=?"?第<input?type='text'?id='page_number'?size='4'?maxlength='4'?value='"?+?cur_page?+?"'?onBlur='gotoPage(this.value)'/>頁?共"?+?total_page?+?"頁";
          page_info.innerHTML?=?txt;
          //?window.alert(txt);
          }

          function?Transform(){
          var?txt?=?document.getElementById("ename").value;
          var?str?=?OutputDocument(txt);
          rule_list.innerHTML?=?str;
          checked_count?=?0;
          showPageInfo();
          changeState();
          //?window.alert(str);
          }
          </script>

          <BODY?onLoad="Transform()">

          <table?width="550"?border="1"?cellpadding="0"?cellspacing="0"?style="border-collapse:collapse;">
          <tr>
          <td>
          <table?width="100%"?border="0"?cellpadding="0"?cellspacing="0"?style="border-collapse:collapse;">
          <TR?height=5><td?colspan=10?style="font-size:0px;"></td></TR>
          <TR?height=25>
          <td?colspan=3?align=center>事件名包含:</td>
          <td?colspan=3?align=center><input?type="text"?value=""?id="ename"?size="35"?maxlength="16"/></td>
          <td?colspan=4><input?type="button"?value="搜索"?onClick="Transform()"/></td>
          </TR>
          <TR?height=1><td?colspan=10?bgcolor=#2b7297></td></TR>
          <TR?height=30>
          <td?width=45?align=center><b>添加</b></td>
          <td?width=5?align=center><font?color=gray>|</font></td>
          <td?width=50?align=center>事件號</td>
          <td?width=55?align=center><input?type="text"?name="add_id"?value=""?size="5"?maxlength="5"?onkeyup="this.value=this.value.replace(/\D/g,'')"?onafterpaste="this.value=this.value.replace(/\D/g,'')"></td>
          <td?width=55?align=center>事件名</td>
          <td?width=*?align=center><input?type="text"?name="add_name"?maxlength="48"?value=""></td>
          <td?width=70?align=center>是否使用</td>
          <td?width=30?align=center>
          <input?type='checkbox'?name='add_state'?checked>
          </td>?
          <td?width=5?align=center><font?color=gray>|</font></td>
          <td?width=70?align=center><input?type="button"?name="add_btn"?value="確定"?onClick="protectsubmit(1)"></td>
          </TR>
          <TR?height=1><td?colspan=10?bgcolor=#2b7297></td></TR>
          <TR?height=30>
          <td?width=45?align=center><b>修改</b></td>
          <td?width=5?align=center><font?color=gray>|</font></td>
          <td?width=50?align=center>事件號</td>
          <td?width=55?align=center>
          <input?type="text"?name="modify_id"?value="<請選擇一條規則>"?size="5"?maxlength="5"?onkeyup="this.value=this.value.replace(/\D/g,'')"?onafterpaste="this.value=this.value.replace(/\D/g,'')"?disabled></td>
          <td?width=55?align=center>事件名</td>
          <td?width=*?align=center>
          <input?type="text"?name="modify_name"?maxlength="48"?value="<請選擇一條規則>"?disabled></td>
          <td?width=70?align=center>是否使用</td>
          <td?width=30?align=center>
          <input?type='checkbox'?name='modify_state'?disabled>
          </td>?
          <td?width=5?align=center><font?color=gray>|</font></td>
          <td?width=70?align=center><input?type="button"?name="modify_btn"?value="確定"?onClick="protectsubmit(2)"></td>
          </TR>
          <TR?height=1><td?colspan=10?bgcolor=#2b7297></td></TR>
          <TR?height=30>
          <td?colspan=5?align=left?class=tablefont></td>
          <td?align=right><input?type="button"?name="select_all_btn"?value="全部選擇"?onClick="protectsubmit(4)"></td>
          <td?colspan=2?align=right><input?type="button"?name="cancel_all_btn"?value="全部不選"?onClick="protectsubmit(5)"?disabled></td>
          <td?align=center></td>
          <td?align=center><input?type="button"?name="delete_btn"?value="刪除"?onClick="protectsubmit(3)"?disabled></td>
          </TR>
          <TR?height=30><td?colspan=4>規則列表</td><TD?colspan=6?align=right><div?id="page_info"?name="page_info"/></TR>
          <TR>
          <TD?colspan=10><div?id="rule_list"?name="rule_list"/></TD>
          </TR>
          <TR?height=5><td?colspan=10></td></TR>
          </table>
          </td>
          </tr>
          <tr>
          </tr>
          </table>

          </BODY>
          </HTML>


          rule.xml
          ============
          <?xml?version="1.0"?encoding="GB2312"?>
          <?xml:stylesheet?type="text/xsl"?href="rule.xsl"?>
          <rules>
          <rule>
          <event>
          <id>10001</id>
          <name>TFTP下載文件</name>
          </event>
          <enable>false</enable>
          </rule>
          <rule>
          <event>
          <id>10002</id>
          <name>TFTP上傳文件</name>
          </event>
          <enable>false</enable>
          </rule>
          <rule>
          <event>
          <id>10003</id>
          <name>telnet登錄成功</name>
          </event>
          <enable>false</enable>
          </rule>

          </rules>

          rule.xsl
          =============
          <?xml?version="1.0"?encoding="GB2312"?>
          <xsl:stylesheet?version="1.0"?xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          <xsl:strip-space?elements="*"/>
          <xsl:output?method=?"html"/>
          <xsl:param?name="ename">undefined</xsl:param>
          <xsl:param?name="startno">undefined</xsl:param>
          <xsl:param?name="endno">undefined</xsl:param>

          <xsl:template?match="/">
          <html>
          <body>
          <xsl:apply-templates?select="rules"/>
          </body>
          </html>
          </xsl:template>

          <xsl:template?match="rules">
          <input?type="hidden"?name="total_item">
          <xsl:attribute?name="value"><xsl:value-of?select="count(rule[contains(event/name,?$ename)])"/></xsl:attribute>
          </input>
          <TABLE?id="viewTable"?name="viewTable"?width="100%"?border="1"?bordercolor="#85979f"?cellSpacing="0"?cellPadding="0"?style="border-collapse:collapse;">
          <tr?height="25">
          <TD?width="10%"?align="center">選擇</TD>
          <TD?width="10%"?align="center">狀態</TD>
          <TD?width="10%"?align="center">事件號</TD>
          <TD?width="*"?align="center">事件名</TD>
          </tr>

          <xsl:for-each?select='rule[contains(event/name,?$ename)]'>
          <xsl:sort?select="event/id"/>
          <xsl:if?test="position()>?$startno?and?position()<=?$endno">
          <tr>
          <td?align="center">
          <input?type='checkbox'>
          <xsl:attribute?name="name">viewchk_<xsl:value-of?select="event/id"/></xsl:attribute>
          <xsl:attribute?name="value"><xsl:value-of?select="event/id"/></xsl:attribute>
          <xsl:attribute?name="onClick">checkOVItem(<xsl:value-of?select="event/id"/>)</xsl:attribute>
          </input>
          </td>
          <xsl:choose>
          <xsl:when?test="enable[.?=?'true']">
          <td?align="center">有效</td>
          </xsl:when>
          <xsl:otherwise>
          <td?align="center">禁用</td>
          </xsl:otherwise>
          </xsl:choose>
          <td?align="center"><xsl:value-of?select="event/id"/></td>
          <td><xsl:value-of?select="event/name"/></td>
          </tr>
          </xsl:if>
          </xsl:for-each>
          </TABLE>
          </xsl:template>

          </xsl:stylesheet>


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 油尖旺区| 贞丰县| 西贡区| 河东区| 田阳县| 永清县| 安新县| 商都县| 河曲县| 洮南市| 娄烦县| 于田县| 义马市| 娄底市| 陕西省| 汕尾市| 大足县| 富阳市| 习水县| 牙克石市| 化州市| 垣曲县| 进贤县| 闸北区| 昭觉县| 南投市| 黄大仙区| 平陆县| 济阳县| 桃园市| 甘南县| 西昌市| 大英县| 京山县| 石棉县| 湘潭市| 金溪县| 太湖县| 蚌埠市| 光山县| 武邑县|