国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
當前位置: 首頁 - 科技 - 知識百科 - 正文

.Net頁面局部更新引發的思考

來源:懂視網 責編:小采 時間:2020-11-27 22:37:15
文檔

.Net頁面局部更新引發的思考

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

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

我接觸的項目開發大多是以Asp.net WebForm開發的,自然會用到UpdatePanel,好處就是開發快、方便,當然產生的問題也是一大堆。然后是Ajax和一般處理程序配合實現異步請求更新。最后就是利用第三方綁定插件優化Ajax請求。 

一、UpdatePanel 
將需要更新的模塊放入UpdatePanel的ContentTemplate中,區域內的回發將不會刷新整個頁面。并且響應的內容也僅僅是UpdatePanel里面更新的內容
 如:查詢

<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不需要寫任何異步請求的代碼就能實現局部更新,但性能會有一定的影響,并且靈活性、重用性不高。

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

p>

使用Ajax查詢靈活性高,但html代碼的拼接有點煩,當然有很多種方法可以改善。下面繼續介紹。

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'>沒有任何記錄,請改進查詢條件</td></tr>";
 $("#ajaxtable").append(html);
 }
 else {
 alert(data.info);
 }
 },
 error: function (XMLHttpRequest, textStatus, errorThrown) {
 alert("網絡繁忙,請刷新頁面!");
 }
 });
 } 

三、Avalonjs改善代碼拼接
 Angularjs用得也比較多,但是太龐大了,所有找到一個比較適合一般開發的Avalonjs。
 我之前在博問里問過這樣一個問題:有沒有jquery數據雙向綁定插件,有臟檢查的。只是和大家探討,我見過一個DataSet js插件,所有的數據以json的形式綁定的DataSet,DataSet本身實現臟檢查,其余控件都綁定相應的DataSet的某個屬性。只要某個綁定控件值發生改變,就可以從DataSet中獲取僅僅改變的數據(而不是整個json)。回答的幾乎是Angularjs。其與的也都是基本的雙向綁定,所以臟檢查還是要自己實現。 
使用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("網絡繁忙,請刷新頁面!");
 }
 });
 }
 }); 

最后回到臟檢查:如果把這個改進成可編輯的表格,怎么去監聽哪些行被修改,保存的時候不應該提交整個表格數據,而應該提交修改的行數據?

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

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

.Net頁面局部更新引發的思考

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

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 黄色免费网站视频 | 久久九九99 | 欧美日韩中文字幕在线 | 国产喷水在线观看 | 亚洲欧美日韩中另类在线 | 久久亚洲伊人中字综合精品 | 中文字幕久久亚洲一区 | 久久www免费人成_看片美女图 | 欧美日韩国产高清一区二区三区 | 国产精品一二三区 | 日韩三| 一级毛片免费毛片一级毛片免费 | 国内视频一区二区三区 | 亚洲一区免费观看 | 国产一区二区成人 | 日韩一级精品久久久久 | 久久久久久夜精品精品免费啦 | 欧美一区二区在线观看 | 在线播放一区二区精品产 | 久久66热re国产毛片基地 | 国产一区二区三区免费在线视频 | 欧美国产亚洲一区二区三区 | 国产日韩欧美高清 | 91精品国产品国语在线不卡 | 国产精品黄大片观看 | 99久久精品国产国产毛片 | 国产视频一区二区三区四区 | 国产欧美在线视频免费 | 亚洲一区日韩一区欧美一区a | 中文字幕三区 | 久久亚洲精品国产精品婷婷 | 欧美色视频在线 | 国产在线精品一区二区高清不卡 | 91久久久久久久 | 91原创在线 | 国产精品视频免费一区二区三区 | 国产成人精品久久一区二区三区 | 亚洲综合一区二区精品久久 | 亚洲 欧美 日韩在线 | 福利二区视频 | 香蕉成人啪国产精品视频综合网 |