<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        .Net頁(yè)面局部更新引發(fā)的思考

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:37:15
        文檔

        .Net頁(yè)面局部更新引發(fā)的思考

        .Net頁(yè)面局部更新引發(fā)的思考:最近在修改以前做的模塊,添加一個(gè)新功能。整理了下才發(fā)現(xiàn)重用率很低,大部分的東西還是需要重新寫。功能里用到了局部更新,所有整理一下一路來實(shí)現(xiàn)局部更新的解決方案及改進(jìn)。 我接觸的項(xiàng)目開發(fā)大多是以Asp.net WebForm開發(fā)的,自然會(huì)用到UpdatePa
        推薦度:
        導(dǎo)讀.Net頁(yè)面局部更新引發(fā)的思考:最近在修改以前做的模塊,添加一個(gè)新功能。整理了下才發(fā)現(xiàn)重用率很低,大部分的東西還是需要重新寫。功能里用到了局部更新,所有整理一下一路來實(shí)現(xiàn)局部更新的解決方案及改進(jìn)。 我接觸的項(xiàng)目開發(fā)大多是以Asp.net WebForm開發(fā)的,自然會(huì)用到UpdatePa

        最近在修改以前做的模塊,添加一個(gè)新功能。整理了下才發(fā)現(xiàn)重用率很低,大部分的東西還是需要重新寫。功能里用到了局部更新,所有整理一下一路來實(shí)現(xiàn)局部更新的解決方案及改進(jìn)。 

        我接觸的項(xiàng)目開發(fā)大多是以Asp.net WebForm開發(fā)的,自然會(huì)用到UpdatePanel,好處就是開發(fā)快、方便,當(dāng)然產(chǎn)生的問題也是一大堆。然后是Ajax和一般處理程序配合實(shí)現(xiàn)異步請(qǐng)求更新。最后就是利用第三方綁定插件優(yōu)化Ajax請(qǐng)求。 

        一、UpdatePanel 
        將需要更新的模塊放入U(xiǎn)pdatePanel的ContentTemplate中,區(qū)域內(nèi)的回發(fā)將不會(huì)刷新整個(gè)頁(yè)面。并且響應(yīng)的內(nèi)容也僅僅是UpdatePanel里面更新的內(nèi)容
         如:查詢

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
         <ContentTemplate>
         <div style="margin: 8px 0px;">
         <asp:TextBox ID="tbKey" runat="server" CssClass="form-control"></asp:TextBox> <asp:Button ID="btnQuery" runat="server" Text="查詢" CssClass="btn-box btn-submit-box" OnClick="btnQuery_Click" />
         </div>
         <table class="data-table">
         <tr>
         <th>ID</th>
         <th>姓名</th>
         <th>年齡</th>
         <th>住址</th>
         <th>入職日期</th>
         <th>部門</th>
         <th>薪水</th>
         </tr>
         <asp:Repeater ID="RepeaterEmp" runat="server">
         <ItemTemplate>
         <tr>
         <td><%#Eval("ID") %></td>
         <td><%#Eval("Name") %></td>
         <td><%#Eval("Age") %></td>
         <td><%#Eval("Address") %></td>
         <td><%#Eval("JoinDate") %></td>
         <td><%#Eval("Department") %></td>
         <td><%#Eval("Salary") %></td>
         </tr>
         </ItemTemplate>
         </asp:Repeater>
         </table>
         </ContentTemplate>
         </asp:UpdatePanel> 
        
        

        使用UpdatePanel不需要寫任何異步請(qǐng)求的代碼就能實(shí)現(xiàn)局部更新,但性能會(huì)有一定的影響,并且靈活性、重用性不高。

        2.Ajxa和一般處理程序
         首先新建一個(gè)一般處理程序,接收查詢參數(shù),返回查詢后的員工信息,默認(rèn)返回所有的信息。
         如:查詢 

        p>

        使用Ajax查詢靈活性高,但html代碼的拼接有點(diǎn)煩,當(dāng)然有很多種方法可以改善。下面繼續(xù)介紹。

        function ajaxquery() {
         $.ajax({
         url: "/DataService/getEmployee.ashx",
         type: "GET",
         cache: false,
         data: { key: $("#ajaxkey").val() },
         dataType: "json",
         success: function (data, textStatus) {
         if (data.code == "ok") {
         $("#ajaxtable tr.row").remove();
         var html = "";
         for (var i = 0; i < data.res.length; i++) {
         html += "<tr class='row'><td>" + data.res[i].ID + "</td><td>" + data.res[i].Name + "</td><td>" + data.res[i].Age + "</td><td>" + data.res[i].Address + "</td><td>" + data.res[i].JoinDate + "</td><td>" + data.res[i].Department + "</td><td>" + data.res[i].Salary + "</td></tr>"
         }
         if (html == "")
         html += "<tr class='row'><td colspan='7'>沒有任何記錄,請(qǐng)改進(jìn)查詢條件</td></tr>";
         $("#ajaxtable").append(html);
         }
         else {
         alert(data.info);
         }
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {
         alert("網(wǎng)絡(luò)繁忙,請(qǐng)刷新頁(yè)面!");
         }
         });
         } 
        
        

        三、Avalonjs改善代碼拼接
         Angularjs用得也比較多,但是太龐大了,所有找到一個(gè)比較適合一般開發(fā)的Avalonjs。
         我之前在博問里問過這樣一個(gè)問題:有沒有jquery數(shù)據(jù)雙向綁定插件,有臟檢查的。只是和大家探討,我見過一個(gè)DataSet js插件,所有的數(shù)據(jù)以json的形式綁定的DataSet,DataSet本身實(shí)現(xiàn)臟檢查,其余控件都綁定相應(yīng)的DataSet的某個(gè)屬性。只要某個(gè)綁定控件值發(fā)生改變,就可以從DataSet中獲取僅僅改變的數(shù)據(jù)(而不是整個(gè)json)。回答的幾乎是Angularjs。其與的也都是基本的雙向綁定,所以臟檢查還是要自己實(shí)現(xiàn)。 
        使用Avalonjs首先引入js文件,然后定義controller
         如:查詢

         <div ms-controller="avalonCtrl">
         <div style="margin: 8px 0px;">
         <input type="text" class="form-control" ms-duplex="key" />
          
         <input type="button" value="查詢" ms-click="query" class="btn-box btn-submit-box" />
         </div>
         <table class="data-table">
         <tr>
         <th>ID</th>
         <th>姓名</th>
         <th>年齡</th>
         <th>住址</th>
         <th>入職日期</th>
         <th>部門</th>
         <th>薪水</th>
         </tr>
         <tr ms-repeat-emp="emps">
         <td>{{emp.ID}}</td>
         <td>{{emp.Name}}</td>
         <td>{{emp.Age}}</td>
         <td>{{emp.Address}}</td>
         <td>{{emp.JoinDate}}</td>
         <td>{{emp.Department}}</td>
         <td>{{emp.Salary}}</td>
         </tr>
         </table>
         </div> 
           
         var vm = avalon.define({
         $id: "avalonCtrl",
         emps: [],
         key: "",
         query: function () {
         $.ajax({
         url: "/DataService/getEmployee.ashx",
         type: "GET",
         cache: false,
         data: { key: vm.key },
         dataType: "json",
         success: function (data, textStatus) {
         if (data.code == "ok") {
         vm.emps = data.res;
         }
         else {
         alert(data.info);
         }
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {
         alert("網(wǎng)絡(luò)繁忙,請(qǐng)刷新頁(yè)面!");
         }
         });
         }
         }); 
        

        最后回到臟檢查:如果把這個(gè)改進(jìn)成可編輯的表格,怎么去監(jiān)聽哪些行被修改,保存的時(shí)候不應(yīng)該提交整個(gè)表格數(shù)據(jù),而應(yīng)該提交修改的行數(shù)據(jù)?

        本文代碼:下載
         本文地址:http://www.cnblogs.com/liuxiaobo93/p/5593393.html

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        .Net頁(yè)面局部更新引發(fā)的思考

        .Net頁(yè)面局部更新引發(fā)的思考:最近在修改以前做的模塊,添加一個(gè)新功能。整理了下才發(fā)現(xiàn)重用率很低,大部分的東西還是需要重新寫。功能里用到了局部更新,所有整理一下一路來實(shí)現(xiàn)局部更新的解決方案及改進(jìn)。 我接觸的項(xiàng)目開發(fā)大多是以Asp.net WebForm開發(fā)的,自然會(huì)用到UpdatePa
        推薦度:
        標(biāo)簽: 頁(yè)面 net update
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 18gay台湾男同亚洲男同| 日韩国产欧美亚洲v片 | 亚洲精品GV天堂无码男同| 免费观看午夜在线欧差毛片| 国产一区二区免费| 亚洲熟妇无码av另类vr影视| 中文字幕亚洲图片| 成人免费的性色视频| 日韩成人毛片高清视频免费看| 亚洲AV本道一区二区三区四区| 日本免费一区二区三区最新vr| 免费A级毛片无码专区| 亚洲aⅴ无码专区在线观看春色| 亚洲AV永久青草无码精品| 啦啦啦在线免费视频| 久久精品国产影库免费看| 亚洲GV天堂GV无码男同| 亚洲高清在线视频| 四虎影在线永久免费四虎地址8848aa| 久久久久免费精品国产小说| 午夜亚洲国产理论片二级港台二级 | 丝袜足液精子免费视频| 久久亚洲免费视频| 国产免费观看黄AV片 | 亚洲色图综合在线| 成人au免费视频影院| 三年片在线观看免费西瓜视频| 亚洲七久久之综合七久久| 亚洲男人都懂得羞羞网站| 亚洲Av无码乱码在线观看性色| 国产香蕉九九久久精品免费| 秋霞人成在线观看免费视频| 国产午夜亚洲精品不卡电影| 亚洲一区免费在线观看| 亚洲AV日韩AV永久无码久久| 亚洲精品动漫人成3d在线| 日本不卡高清中文字幕免费| 成视频年人黄网站免费视频| 性无码免费一区二区三区在线| eeuss在线兵区免费观看| 爱爱帝国亚洲一区二区三区|