DOM大作业之Table表单的增删改查!

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="QCPlatform.SysTools.WebForm3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
    <script language="javascript" type="text/javascript">
        var _OTable_ = null;
        var _oTbody_ = null;
        var _arrSelect_ = new Array;
    
        var _oTempValue_=new Object;
        _oTempValue_["$updateIndex"]=-1;
        var _TheadName_=new Array("姓名","性别","年龄","籍贯","删除否");
        var CELLS_COUNT=_TheadName_.length-1;
       
        String.prototype.trim=function()
        {
             return this.replace(/(^\s*)(\s*$)/g, '');
        }

        window.onload = function()
        {
            var $oAdd = document.getElementById("btnAdd");
            $oAdd.onclick = function()
            {
                var _oCol1_ = document.getElementById("Col1");
                var _oCol2_ = document.getElementById("Col2");
                var _oCol3_ = document.getElementById("Col3");
                var _oCol4_ = document.getElementById("Col4");

                if (!_OTable_) //如果不存在表则新建
                {
                    _OTable_ = document.createElement("table");
                    _OTable_.setAttribute("border", "1");
                    _OTable_.setAttribute("width", "800px");
                    var _Thead_=_OTable_.createTHead();
                    var _TRow_=_Thead_.insertRow(0);
                    for(var _headindex_=0;_headindex_<CELLS_COUNT+1;_headindex_++ )
                    {
                       var _tTh=_TRow_.insertCell(_headindex_);
                       _tTh.appendChild(document.createTextNode(_TheadName_[_headindex_]));
                    }
                    _oTbody_ = document.createElement("tbody");
                    _OTable_.appendChild(_oTbody_);
                    document.getElementById("TableData").appendChild(_OTable_);
                }
                if(!_oCol1_.value.trim()){alert("姓名必须填写!"); return;}
               
                //添加一行
                var _oRow_ = _oTbody_.insertRow(-1);

                //添加5列,四列值,一列选择
                var _oCell1_ = _oRow_.insertCell(-1);
                _oCell1_.appendChild(document.createTextNode(_oCol1_.value));
                var _oCell2_ = _oRow_.insertCell(-1);
                _oCell2_.appendChild(document.createTextNode(_oCol2_.value));
                var _oCell3_ = _oRow_.insertCell(-1);
                _oCell3_.appendChild(document.createTextNode(_oCol3_.value));
                var _oCell4_ = _oRow_.insertCell(-1);
                _oCell4_.appendChild(document.createTextNode(_oCol4_.value));

                _oCol1_.value = "";
                _oCol2_.value = "";
                _oCol3_.value = "";
                _oCol4_.value = "";

                //选择
                var _oCell5_ = _oRow_.insertCell(4);
                _oCell5_.setAttribute("style", "width:50px;");
                var _oCheckBox_ = document.createElement("input");
                _oCheckBox_.setAttribute("type", "checkbox");
                _oCell5_.appendChild(_oCheckBox_);
                _oCheckBox_.onclick = function()
                {
                    if (_oCheckBox_.checked)
                    {
                        var _rowIndex_ = _oCheckBox_.parentNode.parentNode.rowIndex-1;
                        _arrSelect_.push(_rowIndex_);
                    }

                }

                _oRow_.ondblclick = function()
                {
                    var _oPreUpdateIndex_=_oTempValue_["$updateIndex"];
                    var _oPreTempRow_=null;
                    if (parseInt(_oPreUpdateIndex_) != -1) //原先选定行重置
                    {
                     
                      if (!_OTable_ || !_oTbody_) return;
                      _oPreTempRow_= _oTbody_.rows[parseInt(_oPreUpdateIndex_)];
                      var _cancelornot_=false;
                      for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                      {
                         var $attributeNode_=_oPreTempRow_.cells[_cellindex_].firstChild;
                         var $nodedata_=document.all?$attributeNode_.getAttribute("value"):$attributeNode_.value;
                         if($nodedata_!=_oTempValue_["$"+_cellindex_])//与原值比较
                         {
                            _cancelornot_=confirm("你之前的内容作了修改,保存修改吗?");
                            break;
                         }
                      }
                      if(_cancelornot_)
                      {
                          //避免前次提交为空
                          var _firstNode_=_oPreTempRow_.cells[0].firstChild;
                          var $firstnodedata_=_firstNode_.getAttribute("value");
                          if(!$firstnodedata_||!$firstnodedata_.trim()){alert("姓名不能为空,请重新编辑!"); _firstNode_.focus(); return;};
                         
                          for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                          {
                              var _oldNode_=_oPreTempRow_.cells[_cellindex_].firstChild;
                              var $nodedata_=document.all?_oldNode_.getAttribute("value"):_oldNode_.value;
                              var _textnode_=  document.createTextNode($nodedata_);
                              _oPreTempRow_.cells[_cellindex_].replaceChild(_textnode_,_oldNode_);
                              delete _oTempValue_["$"+_cellindex_];
                          }
                      }
                      else
                      {
                         for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                          {
                              var _oldNode_=_oPreTempRow_.cells[_cellindex_].firstChild;
                              var _textnode_=  document.createTextNode(_oTempValue_["$"+_cellindex_]);
                              _oPreTempRow_.cells[_cellindex_].replaceChild(_textnode_,_oldNode_);
                              delete _oTempValue_["$"+_cellindex_];
                          }
                      }

                    }
                    _oTempValue_["$updateIndex"] = this.rowIndex-1;
                    //单元格中只有一个文本节点
                    for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                    {
                      var _textbox_=  document.createElement("input");
                      _textbox_.setAttribute("type", "text");
                      var _preNode_=this.cells[_cellindex_].firstChild;
                      _oTempValue_["$"+_cellindex_]=_preNode_.nodeValue; //记录原先的值
                      _textbox_.setAttribute("value",_preNode_.nodeValue);
                   
                      this.cells[_cellindex_].replaceChild(_textbox_ ,_preNode_);
                    }
                };
            };

            //删除
            var $oDelete = document.getElementById("btnDelete");
            $oDelete.onclick = function()
            {
                if (_arrSelect_.length == 0) { alert("您还没有选择要删除的行."); return; }

                if (_OTable_  && _oTbody_)
                {
                    var _confirmMsg_ = "你确定要删除名字是如下:\n";
                    for (var index = 0, iLen = _arrSelect_.length; index < iLen; index++)
                    {
                        var _deletName_ = _oTbody_.rows[parseInt(_arrSelect_[index])].cells[0].firstChild.nodeValue;
                        _confirmMsg_ = _confirmMsg_.concat(_deletName_ + "\n");
                    }
                    _confirmMsg_ = _confirmMsg_.concat("的信息吗?");
                    if (!confirm(_confirmMsg_)) return;

                    for (var index = _arrSelect_.length - 1; index >= 0; index--)
                    {
                        _oTbody_.deleteRow(parseInt(_arrSelect_[index]));
                    }
                }
                _arrSelect_.splice(0,_arrSelect_.length); //清空选择列表
            };
           
             //更新
            var $oUpdate = document.getElementById("btnUpdate");
            $oUpdate.onclick = function()
            {
                var _oPreUpdateIndex_=_oTempValue_["$updateIndex"]
                if (parseInt(_oPreUpdateIndex_)== -1){alert("您未编辑任何更新行!") ;return;}
                if (_OTable_ && _oTbody_ )
                {
                   if(confirm("您确定修改吗?"))
                   {
                       var _temprow_= _oTbody_.rows[parseInt(_oPreUpdateIndex_)];
                       var $namenode=_temprow_.cells[0].firstChild;
                       var $namenodevalue=document.all?$namenode.getAttribute("value"):$namenode.value;
                       if(!$namenodevalue||!$namenodevalue.trim()){ alert("姓名不能为空,请重新编辑!"); $namenode.focus(); return;}
                       for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                       {
                          var $tmpnode_=_temprow_.cells[_cellindex_].firstChild;
                          var $nodedata_=document.all?$tmpnode_.getAttribute("value"):$tmpnode_.value;
                          var _textnode_=  document.createTextNode($nodedata_);
                          var _oldNode_=_temprow_.cells[_cellindex_].firstChild;
                          _temprow_.cells[_cellindex_].replaceChild(_textnode_,_oldNode_);
                          delete _oTempValue_["$"+_cellindex_];
                       }
                   }
                }
                _oTempValue_["$updateIndex"] = -1
            };
           
               //查找
            var $oFind = document.getElementById("btnFind");
             $oFind.οnclick=function()
             {
               if(!_OTable_ && !_oTbody_ ){alert("目前尚无数据可查!");return;}
              
               ///判断之前有编辑未提交的
               var _oPreUpdateIndex_=_oTempValue_["$updateIndex"];
               var _oPreTempRow_=null;
                if (parseInt(_oPreUpdateIndex_) != -1) //原先选定行重置
                {
                 
                  if (!_OTable_ || !_oTbody_) return;
                  _oPreTempRow_= _oTbody_.rows[parseInt(_oPreUpdateIndex_)];
                  var _cancelornot_=false;
                  for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                  {
                     var $childNode_=_oPreTempRow_.cells[_cellindex_].firstChild;
                     var $nodedata_=document.all?$childNode_.getAttribute("value"):$childNode_.value;
                     if($nodedata_!=_oTempValue_["$"+_cellindex_])//与原值比较
                     {
                        _cancelornot_=confirm("你之前的内容作了修改,保存修改吗?");
                        break;
                     }
                  }
                  if(_cancelornot_)
                  {
                      //避免前次提交为空
                      var _firstNode_=_oPreTempRow_.cells[0].firstChild;
                      var $firstnodedata_=document.all?_firstNode_.getAttribute("value"):_firstNode_.value;
                      if(!$firstnodedata_||!$firstnodedata_.trim()){alert("姓名不能为空,请重新编辑!"); _firstNode_.focus(); return;};
                     
                      for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                      {
                          var _oldNode_=_oPreTempRow_.cells[_cellindex_].firstChild;
                          var $nodedata_=document.all?_oldNode_.getAttribute("value"):_oldNode_.value;
                          var _textnode_=  document.createTextNode($nodedata_);
                          _oPreTempRow_.cells[_cellindex_].replaceChild(_textnode_,_oldNode_);
                          delete _oTempValue_["$"+_cellindex_];
                      }
                  }
                  else
                  {
                     for(var _cellindex_=0;_cellindex_<CELLS_COUNT;_cellindex_++)
                      {
                          var _oldNode_=_oPreTempRow_.cells[_cellindex_].firstChild;
                          var _textnode_=  document.createTextNode(_oTempValue_["$"+_cellindex_]);
                          _oPreTempRow_.cells[_cellindex_].replaceChild(_textnode_,_oldNode_);
                          delete _oTempValue_["$"+_cellindex_];
                      }
                  }
                }
               
                //清除更新列表
                for(var $obj_ in _oTempValue_)
                {
                   delete _oTempValue_[$obj_];
                }
               // _oTempValue_=new Object;
                _oTempValue_["$updateIndex"] = -1;
              
               开始查询
               var _$oSelect_= document.getElementById("selectCol");
               var _Index_=_$oSelect_.selectedIndex;
               var _$oSelectValue_= _$oSelect_.value;
               var _$oSelectText_= _$oSelect_.options[_Index_].text;
               var _$olike_=document.getElementById("Col9");
               var _$rowcollection_=_oTbody_.rows;
               var _$rLen=_$rowcollection_.length;
               switch(parseInt(_$oSelectValue_))
               {
                 case 0:
                      for(var _rIndex=0;_rIndex<_$rLen;_rIndex++)
                      {
                         var _selectrow_=_$rowcollection_[_rIndex];
                         var $pat = new RegExp(_$olike_.value.trim(),"i");
                         if(!_$olike_.value.trim()){_selectrow_.style.display=document.all?"block":"table-row";}//如果查询框为空,则全部提取..模糊搜索
                         else {if(!$pat.test(_selectrow_.cells[0].firstChild.nodeValue.trim())){
                            _selectrow_.style.display="none";}}
                      }
                  break;
                  case 1:
                      for(var _rIndex=0;_rIndex<_$rLen;_rIndex++)
                      {
                         var _selectrow_=_$rowcollection_[_rIndex];
                         var $pat = new RegExp(_$olike_.value.trim(),"i");
                         if(!_$olike_.value.trim()){_selectrow_.style.display=document.all?"block":"table-row";}
                         else
                         {if(!$pat.test(_selectrow_.cells[1].firstChild.nodeValue.trim()))
                         {_selectrow_.style.display="none";}}
                      }
                  break;
                  case 2:
                      for(var _rIndex=0;_rIndex<_$rLen;_rIndex++)
                      {
                         var _selectrow_=_$rowcollection_[_rIndex];
                         var $pat = new RegExp(_$olike_.value.trim(),"i");
                         if(!_$olike_.value.trim()){_selectrow_.style.display=document.all?"block":"table-row";}
                         else
                         {if(!$pat.test(_selectrow_.cells[2].firstChild.nodeValue.trim()))
                         { _selectrow_.style.display="none";}}
                      }
                  break;


                  for (var _rIndex = 0; _rIndex < _$rLen; _rIndex++) {
                      var _selectrow_ = _$rowcollection_[_rIndex];
                      var $pat = new RegExp(_$olike_.value.trim(), "i");
                      if (!_$olike_.value.trim()) { _selectrow_.style.display = document.all ? "block" : "table-row"; }
                      else {
                          if (!$pat.test(_selectrow_.cells[3].firstChild.nodeValue.trim()))
                          { _selectrow_.style.display = "none"; }
                      }
                  }
                  break;
          }

          _arrSelect_.splice(0, _arrSelect_.length); //清除删除列表

          var _checkBoxList_ = document.getElementsByTagName("input"); //重置checkbox选择.
          for (var _index = 0, iLen = _checkBoxList_.length; _index < iLen; _index++) {
              if (_checkBoxList_[_index].type == "checkbox") {
                  _checkBoxList_[_index].checked = false;
              }
          }
      };

      var $oSelectAll = document.getElementById("btnSelectAll");
      $oSelectAll.onclick = function() {
          if (_OTable_ && _oTbody_) {
              var _$rowall_ = _oTbody_.rows;
              for (var _rIndex = 0, _rLen = _$rowall_.length; _rIndex < _rLen; _rIndex++) {
                  var _selectrow_ = _$rowall_[_rIndex];
                  _selectrow_.style.display = document.all ? "block" : "table-row";
              }
          }
      }
  }
       
       
    </script>

</head>
<body>
    <fieldset>
        <legend>操作Table之增删查改</legend>
        <fieldset>
            <legend>添加</legend>
            <label for="Col1">
                姓名:
            </label>
            <input type="text" id="Col1" />
            <label for="Col2">
                性别:
            </label>
            <input type="text" id="Col2" />
            <label for="Col3">
                年龄:
            </label>
            <input type="text" id="Col3" />
            <label for="Col4">
                籍贯:
            </label>
            <input type="text" id="Col4" />
            <input type="button" value="添加" id="btnAdd" />
        </fieldset>
        <fieldset>
            <legend>查找</legend>
            <label for="Col9">
                查找内容:
            </label>

            <script type="text/javascript">
                var options = ["<option value=\"0\" selected>姓名</option>", "<option value=\"1\">性别</option>", "<option value=\"2\">年龄</option>", "<option value=\"3\">籍贯</option>"];
                document.write("<select name=\"selectCol\" id=\"selectCol\">" + options.join("") + "</select>");
            </script>

            <input type="text" id="Col9" />
            <input type="button" value="查找" id="btnFind" />
        </fieldset>
    </fieldset>
    <br />
    <fieldset id="TableData">
        <legend>表格数据</legend>
    </fieldset>
    <input type="button" value="删除" id="btnDelete" />
    <input type="button" value="更新" id="btnUpdate" />
    <input type="button" value="显示全部" id="btnSelectAll" />
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值