ASP.NET前臺html頁面對table數據的編輯刪除

来源:http://www.cnblogs.com/w5942066/archive/2017/08/15/7366131.html
-Advertisement-
Play Games

摘要:本來說這個企業的門戶網站單純的做做顯示公司文化信息的,做好了老闆說要新增線上辦理業務,本來這個網站是基於別人的框架做的前臺都只能用純html來做。好吧上兩篇我就寫了table裡面向資料庫插入數據《ASP.NET前臺html頁面AJAX提交數據後臺ashx頁面接收數據》跟前臺的查詢數據《ASP.... ...


  摘要:本來說這個企業的門戶網站單純的做做顯示公司文化信息的,做好了老闆說要新增線上辦理業務,本來這個網站是基於別人的框架做的前臺都只能用純html來做。好吧上兩篇我就寫了table裡面向資料庫插入數據《ASP.NET前臺html頁面AJAX提交數據後臺ashx頁面接收數據》跟前臺的查詢數據《ASP.NET前臺table通過Ajax獲取綁定後臺查詢的json數據》。現在又提出來要給用戶修改,刪除的功能。由於沒有寫登錄,在寫登錄我都要瘋了。所以編輯,刪除都是在拼接的表格中完成。好了來看最終要實現的效果。

  實現的功能:這些添加存到資料庫裡面的數據進行編輯,刪除。刪除或者在添加記錄的時候序號不會被打亂。線面看表格的設計。

  <div id="yjdjlistidd" class="yjdjlist">  
        <table class="tabyzhhh" id="tttab">
            <tr id="yjdjtrone">
                <td style="display:none;">唯一編號</td>
                <td style="max-width:50px;">序號</td>
                <td>儀檢名稱</td>
                <td>規格型號</td>
                <td>出廠編號</td>
                <td>登記日期</td>
                <td>公司名稱</td>
                <td>&nbsp;&nbsp;&nbsp;</td>
                <td>聯繫電話</td>
                <td>說明</td>
                <td style="min-width:80px;">操作</td>
            </tr>
        </table>
    </div>
    <div style="margin-top:5px; text-align:left;" id="TSbiaoyu"></div>

 

  1、拼接表格的js代碼,這是寫在添加的按鈕裡面的,在tr裡面加上一個td作為操作功能

 $.ajax({
                        type: "post",                  //提交方式
                        url: "{config.webpath}tools/Instrumentdj_ajax.ashx",  //提交路徑
                        data: { name: _name, xh: _xh, bh: _number, date: _date, comname: _comname, person: _person, phone: _phone, remark: _remark, ddnum: _ddnum, unique: _unique},//參數
                        success: function (result, status)//成功函數(result:輸出的字元串,status:狀態(成功,失敗))
                        {
                            $("#TSbiaoyuhh").remove();//提示語刪除  避免第二次添加會重覆
                            if (status == "success") {//判斷返回狀態
                                _ddnum = result;//賦值給回執編號傳過去為空會自動生成回執編號,存在就屬於同一個表單
                                document.getElementById("addyjdjallid").style.display = "none";//關閉層
                            } else {
                                alert("資料庫保存失敗!"); return;
                            }
                            //拼接表格
                            $("#tttab").append("<tr class='pjtablecss'><td style='display:none;'>" + _unique + "</td><td  style='max-width:50px;'></td><td>" + _name + "</td><td>" + _xh + "</td><td>" + _number + "</td><td>" + _date + "</td><td>" + _comname + "</td><td>" + _person + "</td><td>" + _phone + "</td><td>" + _remark.substr(0, 20) + "</td><td> <a class='tablecljaedit' >編輯</a>&nbsp;&nbsp; <a class='tablecljadel'>刪除</a></td></tr>");
                            //拼接提示語
                            $("#TSbiaoyu").append("<h2 id='TSbiaoyuhh'> &nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;溫馨提示:要繼續添加切勿刷新頁面或瀏覽其他頁面!請牢記(複製)此回執編號【<strong style='color:red;'> " + _ddnum + " </strong> 】這是你查詢最有效的單號。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此單號在您桌面有個txt文件保存註意查看。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;填錯了請刪除或者編輯從填,姓名、電話、公司填錯了請刷新瀏覽器重新登記! <a style='color:green;cursor:pointer;' title='重新載入'onclick='window.location.reload();' >刷新瀏覽器</a><h />");
                            num++;//行數加1
                            cs++;//序號加1
                            doOperatorDel();//刪除編輯操作
                            updateRowsID();
                        },
                        error: function () { alert("添加失敗,程式異常!"); return; }//失敗返回
                    });

 

 

2、 當你要刪除或者編輯某一行的時候  首先要獲取它的行號,在通過行號獲取這列的唯一鍵值(我這裡不是主鍵)。我的是一個隱藏的欄位。

        var statusss = "";//定義狀態
        var num = 0;//定義表格行數
        var _opernumbe = "";//唯一編號,刪除的條件   
        var rrow = 0;//記錄行數

 /*刪除編輯操作*/
        function doOperatorDel()
            {
            var ttabbl = document.getElementById("tttab");//獲取表格  
            var edit = $(".tablecljaedit");//獲取編輯的行
            var dels = $(".tablecljadel");//獲取刪除的行
            for (var i = 0; i < dels.length; i++)
            {
                dels[i].onclick = function () { //單擊刪除
                    rrow=this.parentNode.parentNode.rowIndex;//獲取滑鼠點擊的當前行數
                    _opernumbe = $("#tttab tr:eq(" +rrow + ") td:eq(0)").html();//獲取滑鼠點擊行數的唯一編號
                    $.ajax({
                        type: "post",
                        url: "{config.webpath}tools/Instrumentdj_edit_del_ajax.ashx",
                        data: { opernumber: _opernumbe, statushhh: 'dell', },//傳參(唯一編號、狀態)
                        success: function (jg,sddds) {
                            if(sddds=="success")
                            {
                               
                                num--;//表格總格行數
                                $("#tttab tr:eq(" + rrow + ")").remove();//移除刪除的行
                                updateRowsID();
                                if(num==0)
                                {
                                    window.location.reload();//刷新瀏覽器
                                }
                            }
                            else
                            {
                                alert("操作失敗");
                            }
                        }
                    });
                }
                edit[i].onclick = function () {
                    $("#btnyjaddrecord").val("保存更改");//更改按鈕內容
                    rrow = this.parentNode.parentNode.rowIndex;//獲取滑鼠點擊的當前行數
                    statusss = "eddit";//狀態編輯
                    _opernumbe = $("#tttab tr:eq(" + rrow + ") td:eq(0)").html();//獲取滑鼠點擊行數的唯一編號
                    //*編輯獲取/
                    operator_name = $("#tttab tr:eq(" + rrow + ") td:eq(2)").html();//儀器名稱
                    operator_xh = $("#tttab tr:eq(" + rrow + ") td:eq(3)").html();//型號規格
                    operator_bh = $("#tttab tr:eq(" + rrow + ") td:eq(4)").html();//編號
                    operator_sm = $("#tttab tr:eq(" + rrow + ") td:eq(9)").html();//說明
                    /*賦值*/
                    $("#txtyjneme").val(operator_name);
                    $("#txtyjxh").val(operator_xh);
                    $("#txtyjnumber").val(operator_bh);
                    $("#txtyjremark").val(operator_sm);
                    apperbtn();//彈出層  儀器等級
                }
            }
        }

 

rrow=this.parentNode.parentNode.rowIndex;這個就獲取了滑鼠點的是哪一行, _opernumbe = $("#tttab tr:eq(" +rrow + ") td:eq(0)").html();這個獲取了唯一鍵(這個表格的第rrow行第1列的值),提交過去在同一個界面所以我設置了狀態,不同的狀態對應的處理方法也不一樣,num是一個記錄行數的,刪除表格的某一行的時候
肯定要減少一行,當刪除完了就可以吧提示語表格頭都影藏起來。
3、看url裡面的簡單處理
 public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            var oper = HttpContext.Current.Request["opernumber"];
            var stat = HttpContext.Current.Request["statushhh"];
            var name = HttpContext.Current.Request["name"];
            var xh = HttpContext.Current.Request["xh"];
            var bh = HttpContext.Current.Request["bh"];
            var remark = HttpContext.Current.Request["remark"];
            string _sql = "";
            if (stat == "dell")
            {
                _sql = string.Format("update InstrumentCheck set DeleteID=1 where UniqueID='{0}'", oper);
                context.Response.Write(ExecuteNonQuery(_sql));
            }
            if(stat== "edditt")
            {
                _sql = string.Format("update InstrumentCheck set Name='{1}' , Modle='{2}',Number='{3}',Remark='{4}' where UniqueID='{0}'", oper,name,xh,bh,remark);
                context.Response.Write(ExecuteNonQuery(_sql));
            }

        }
        public static string connectionStringgg = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        /// <summary>
        /// 執行sql影響的行數
        /// </summary>
        /// <param name="sql">sql語句</param>
        /// <returns>影響的行數</returns>
        public int ExecuteNonQuery(string sql)
        {
            SqlConnection connection = new SqlConnection(connectionStringgg);
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
            }
            SqlCommand cmd = new SqlCommand(sql, connection);
            return cmd.ExecuteNonQuery();

        }

 


4、當刪除後刷新表格序號基本就不是有序的了,下麵看怎麼弄這個序號讓它刪除,新增後都是有序的。思路是這樣的,先獲取表格的總行數,然後每一次新增,刪除後在表格序號那一列賦值進去。下麵看具體的代碼

 
//更新表格的行號
function updateRowsID() {for (var i = 0; i <tbrow.rows.length; i++)//獲取表格的行數 { if (i == 0)//第一行是表頭一般都是文字行標題 { $("table tr").eq(1).find("td").eq(1).html("序號");//賦值:表格的第1行第2列的值為序號(第一列是唯一編號,被我隱藏了) } else { $("table tr").eq((i+1)).find("td").eq(1).html(i);//賦值行序號 } } }

 

看編輯的效果圖

 

這裡的編輯賦值上面代碼有,思路一樣的知道了行號,取出每一列的值賦值到文本框中

 

表格的跟新而是一樣的。前提不能刷新瀏覽器,一刷新啥都沒了(這就是我不做登錄的原因了),刪除後表盒還是有序的

桌面上也存了txt文件

 

 

代碼如下

 

 /// <summary>
        /// 桌面儲存回執編號
        /// </summary>
        /// <param name="num">訂單編號</param>
        /// <param name="_na">登記人姓名</param>
        public void Gettxt(string num,String _na)
        {
            string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);//獲取桌面路徑
            StreamWriter sw = new StreamWriter(dir+"\\"+ DateTime.Now.ToString("yyyyMMdd") + _na +"儀檢登記編號.txt");
            string ww = "你本次儀檢登記的回執編號是:【";
            string la = "】此編號是儀檢查詢的唯一憑證,切勿刪除。"+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            sw.Write(ww+num+la);//寫入文本內容
            sw.Close();
        }

 

 

HTML全部的代碼

    <div id="addyjdjallid" class="addyjall">
        <div class="addheard">
            <span  class="txttitle">儀器信息登記</span>
            <span class="cleartit" title="關閉視窗" onClick="deleteadd()">X</span>
        </div>
        <div style="clear:both;"></div>
        <div class="yjdjkk">
            <ul>
                <li>
                    <span>儀器名稱:</span><input maxlength="10" size="10" placeholder="請輸入儀器名稱" id="txtyjneme" name="txtyjneme" type="text" />
                    <strong>*</strong><i class="yz_name" style="display:none; color:red;">-->請填寫儀器名稱^_^</i>
                </li>
                <li>
                    <span>型號規格:</span><input maxlength="10" size="10" placeholder="請輸入型號規格" id="txtyjxh" name="txtyjxh" type="text" />
                    <strong>*</strong><i class="yz_xh" style="display:none; color:red;">-->請填寫規格型號^_^</i>
                </li>
                <li>
                    <span>出廠編號:</span><input maxlength="12" size="12" placeholder="請輸入出廠編號" id="txtyjnumber" name="txtyjnumber" type="text" />
                    <strong>*</strong><i class="yz_bh" style="display:none; color:red;">-->請填寫出廠編號^_^</i>
                </li>
                <li>
                    <span style="vertical-align:top; margin-left:25px;">說明:</span><textarea class="remarktxt" id="txtyjremark" name="txtyjremark" value=""></textarea>
                </li>
            </ul>
        </div>
        <input class="yjaddbtn" id="btnyjaddrecord" value="" type="submit" />
    </div>
    <!--儀檢登記信息-->
    <div style="clear:both;"></div>
<div class="yjdjfm">
    <div class="yjdjfd"> 
        <ul>
            <li><span>公司名稱:</span><input maxlength="15" size="15" id="txtyjcomname" name="txtyjcomname" type="text" value="" /><strong>*</strong><i class="yz_comname" style="display:none; color:red;">-->請填寫公司名稱^_^</i></li>
            <li><span>&nbsp;&nbsp;&nbsp;人:</span><input maxlength="4" size="4" id="txtyjperson" name="txtyjperson" type="text" value="" /><strong>*</strong><i class="yz_person" style="display:none; color:red;">-->請填寫您的姓名^_^</i></li>
        </ul>
        <ul style="float:right; margin-top:-80px;">
            <li><span>聯繫電話:</span><input maxlength="11" size="11"  id="txtyjphone" name="txtyjphone" type="number" value="" /><strong>*</strong><i class="yz_phone" style="display:none; color:red;">-->手機號碼11位哦^_^</i></li>
        </ul>

    </div>
   <button class="yjdjtjan" id="btntj">添加記錄</button>

    <div style="clear:both;"></div>


    <div id="yjdjlistidd" class="yjdjlist">  
        <table class="tabyzhhh" id="tttab">
            <tr id="yjdjtrone">
                <td style="display:none;">唯一編號</td>
                <td style="max-width:50px;">序號</td>
                <td>儀檢名稱</td>
                <td>規格型號</td>
                <td>出廠編號</td>
                <td>登記日期</td>
                <td>公司名稱</td>
                <td>&nbsp;&nbsp;&nbsp;</td>
                <td>聯繫電話</td>
                <td>說明</td>
                <td style="min-width:80px;">操作</td>
            </tr>
        </table>
    </div>
    <div style="margin-top:5px; text-align:left;" id="TSbiaoyu"></div>
</div>

 

樣式

    <style type="text/css">
    .yjdjfm{width:900px; min-height:580px;margin:0 auto;border:1px solid #f1ecec; margin-top:5px;}
    .yjdjfm ul {width:430px; text-align:left;} 
    .yjdjfm ul li {width:420px; line-height:35px; height:35px; margin-bottom:5px; margin-left:10px; }
    .yjdjfm ul li span{width:50px; text-align:right; line-height:35px; height:35px; font-size:14px; font-weight:600; }
    .yjdjfm ul li input{width:200px; line-height:25px; height:25px; font-size:14px;border:1px solid #d0cfcf;}
    .yjdjfm ul li strong{color:red;width:5px; height:30px; line-height:30px; text-align:right; margin-left:5px; font-size:14px;}
    .remarkk{width:800px; text-align:left;margin-left:15px;}
    .remarktxt{width:670px; line-height:25px; height:50px; font-size:14px;border:1px solid #d0cfcf;}
    .remarkk span{width:50px; text-align:right; line-height:35px; height:35px; font-size:14px; font-weight:600; vertical-align:top;}
     /*按鈕*/
    .yjdjtjan{display:inline-block; margin:0 0 0 5px; padding:10px 46px; width:auto; height:auto; line-height:20px; color:#fff; font-size:14px; border:1px solid #93d1fe; background:#93d1fe; cursor:pointer; margin-top:10px; border-radius:5px;}
    /**儀檢登記表格*/
    .yjdjlist{width:900px;  margin-top:10px; display:none; }
    .yjdjlist table{font-size:12px;width:100%; margin-bottom:10px;}
    .yjdjlist table tr{text-align:center; }
    .yjdjlist table tr td{text-align:center; line-height:20px; height:25px; min-width:80px;  border:1px solid #d0cfcf;word-wrap:break-word;word-break:break-all;}
    #yjdjtrone{background:rgb(202, 200, 212); line-height:40px; font-size:14px; font-weight:600;}
    .pjtablecss{background:#fbfafa;}
    /*控制樣式*/
    .xscss{display:block;margin: 0 auto;  text-align:center; margin-top:5px;}
    .addcss{display:block;}
    /*儀檢登記信息*/
        .addyjall{width:500px; height:350px; margin:0 auto; border:1px solid rgb(130, 209, 248); position:absolute;left:37%; top:20%; z-index:9999; border-radius:10px; background:rgba(241, 250, 255, 0.86); text-align:left; display:none; }
        .addheard{float:left; width:500px;height:60px;border-bottom:1px solid #cccccc; position:relative;}
        .txttitle{float:left;margin-left:20px; color:#3273c2; position:relative; font-size:14px; font-weight:600; line-height:60px;}
        .cleartit{float:right; margin-right:20px; line-height:60px; color:#3e87c1; font-size:14px; font-weight:600;}
        .cleartit:hover{color:black;font-size:16px; cursor:pointer;}
         .yjdjkk ul{margin-left:90px;}
        .yjdjkk ul li{line-height:40px; margin-top:5px; list-style-type:none;}
        .yjdjkk ul li span{ width:80px; text-align:right;line-height:25px; }
        .yjdjkk ul li input{ width:200px; line-height:25px;border:1px solid #cccccc; text-indent:10px;}
        .yjdjkk ul li strong{color:red;width:5px; height:30px; line-height:30px; text-align:right; margin-left:5px; font-size:14px;}
        .yjdjkk ul li input:hover{border:1px solid #bcf3c2;}
        .remarktxt{ width:200px;height:50px; line-height:25px;border:1px solid #cccccc; text-indent:10px;}
        .yjaddbtn{
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本指南演示了以下 Azure .NET API 的用法,包括設置認證、創建並使用 Azure 存儲、創建並使用 Azure SQL 資料庫、部署虛擬機、從 GitHub 部署 Azure Web 應用。在本教程中完成的所有操作均符合1元試用條件。 開始之前 如果您還沒有 Azure 賬戶,可以申請1 ...
  • 回到目錄 對於在Linq To Entity里使用日期函數需要DbFunctions里的擴展方法,而不能使用.net里的日期函數,因為linq的代碼會被翻譯成SQL發到資料庫端,如你的.net方法對於資料庫是不知道的,所以需要使用DbFunctions里的函數,它是為sqlserver設計的,而如果 ...
  • 目前使用這個框架,搜不到中文資料。 只有英文wiki,翻譯學習摘錄一下。 大部分是機翻的,改了一些地方, 因為博主也是低水平的,標紅的是瞎理解的。 可能會有錯誤的地方,如果有園友發現可以指出。 wiki地址:http://github.com/schotime/NPoco/wiki 第一個查詢: 註 ...
  • 假如現在有一個按鈕 <div class="inp_btn voice_btn active" id="record"> 按住 說話 </div> 下麵就是調用微信jssdk的方法 var recorder; var btnRecord = $('#record'); var startTime = ...
  • 因為自帶的button是尖角的不太好看 這裡在網上找的一份代碼改改做個自用的button,畫的操作不局限於button也可以畫其他的 ...
  • .NET Core 2.0終於發佈了,本文主要講述在項目從.NET Core1.1升級到.NET Core2.0的過程中,解決使用Cookie中間件新API造成的異常。同時還包括一些新增的擴展和方法的使用,希望對大家有幫助。 ...
  • codeplex切換到目前的主流開源中心https://github.com/microsoft 幾個核心技術的站點https://github.com/Microsoft/dotnethttps://github.com/aspnethttps://github.com/microsoft/vsc ...
  • asp.net core微軟官方為日誌提供了原生支持,有如下實現 Console Debug EventLog AzureAppServices TraceSource EventSource 並且在asp.net core項目模板中預設開啟Comsole,Debug的日誌輸出 在實際生產中僅僅是控 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...