最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

asp.net 2.0中利用Ajax2.0實(shí)現(xiàn)JSON傳送大量頁(yè)面數(shù)據(jù)

 更新時(shí)間:2010年03月30日 12:54:47   作者:  
本人遇到一個(gè)程序頁(yè)面,要有很大量的數(shù)據(jù)進(jìn)行交互操作。
第一次進(jìn)入aspx頁(yè)面,就要讀取出大量數(shù)據(jù)。寫(xiě)入頁(yè)面中。使用都在頁(yè)面要有添刪改的操作,而且只有當(dāng)點(diǎn)擊面的保存按鈕才能真正的寫(xiě)入到數(shù)據(jù)庫(kù)中。因此我選擇了Ajax+JSON的方式來(lái)實(shí)現(xiàn)這個(gè)頁(yè)面。
復(fù)制代碼 代碼如下:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
<Scripts>
<asp:ScriptReference Path="~/WebManage/javascript/jquery.js" />
</Scripts>
</asp:ScriptManager>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table class="popTable" width="100%" cellpadding="0" cellspacing="0" border="1">
<thead>
<tr class="dottedBg">
<th>
所屬機(jī)構(gòu)</th>
<th>
職業(yè)群組</th>
<th>
操作</th>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr class="dottedBg" id='pct-<%#Eval("ID") %>'>
<td align="center">
<%#Eval("A1") %>
</td>
<td align="center">
<%#Eval("A2")%>
</td>
<td align="center">
<a href="javascript:dataDel('<%#Eval("ID") %>')"><%#Eval("ID") %> - 刪除</a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr id="pct"></tr>
</tbody></table>
</FooterTemplate>
</asp:Repeater>
<br />
<hr />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
序列化:<br />
<asp:TextBox ID="TextBox2" runat="server" Width="800px" TextMode="MultiLine" Rows="10"></asp:TextBox><br />
<asp:TextBox ID="TextBox1" runat="server" Width="800px"></asp:TextBox><br />
<input type="button" value="添加" onclick="dateAdd('pct');" />
</ContentTemplate>
</asp:UpdatePanel>

所用到的頁(yè)面端的JS是:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
// 刪除表格中的一項(xiàng)
function dataDel(id){
// 利用ajax使用C#的正則去掉json中的一項(xiàng)
var objId;
objId = "<%= this.TextBox1.ClientID %>";
jQuery("#"+objId).val(id);
objId = "<%= this.Button2.ClientID %>";
jQuery("#"+objId).click();
// 刪除表格中的tr一行
jQuery("#pct-"+id).hide();
}
var pageTableIdGlobe;
// 添加表中的一項(xiàng)
function dateAdd(pageTableId){
// 備份到全局變量中
pageTableIdGlobe = pageTableId;
// 獲取要查詢(xún)的id
var objId;
var id;
objId = "<%= this.TextBox1.ClientID %>";
id = jQuery("#"+objId).val();
// 判斷序列化中是否有此ID
objId = "<%= this.TextBox2.ClientID %>";
var json = jQuery("#"+objId).val();
if(json.indexOf(id) == -1){
// 利用ajax進(jìn)入后臺(tái)查找數(shù)據(jù)庫(kù)
PageMethods.AddPageContallorItem(id, RedirectSearchResult);
}else{
alert("已存在列表中");
return;
}
}
// 將要添加的數(shù)據(jù),ajax的回調(diào)處理方法
function RedirectSearchResult(result){
var html;
// alert(result);
if (result == "error"){
alert("數(shù)據(jù)讀取出錯(cuò)");
}else{
// 生成新的表格中的一行HTML
html = CreatePageHtml(result);
// 在頁(yè)面顯示HTML
jQuery("#"+pageTableIdGlobe).before(html);
// 更新json,以備寫(xiě)入數(shù)據(jù)庫(kù)
var objId = "<%= this.TextBox2.ClientID %>";
FlashJson(objId, result);
}
}
// 生成新的一行表格HTML
function CreatePageHtml(result){
var html;
var data = eval("("+result+")");// 轉(zhuǎn)換為json對(duì)象
html = "<tr class=\"dottedBg\" id='pct-{id}'><td align=\"center\">{a1}</td><td align=\"center\">{a2}</td><td align=\"center\"><a href=\"javascript:dataDel('{id}')\">{id} - 刪除</a></td></tr>";
jQuery.each(data, function(i,item){
jQuery.each(item, function(j,itemchild){
if(j==0)
html = html.replace(/{id}/g, itemchild);
if(j==1)
html = html.replace(/{a1}/g, itemchild);
if(j==2)
html = html.replace(/{a2}/g, itemchild);
});
});
return html;
}
// 將result寫(xiě)入json中,objId是保存json的控件ID
function FlashJson(objId, result){
var obj = jQuery("#"+objId);
var oldjson = obj.val();
var newjson;
result = result.replace("{", "");
if(oldjson=="{}"){
newjson = oldjson.replace("}", result);
}else{
newjson = oldjson.replace("}", ","+result);
}
obj.val(newjson);
}
</script>

后臺(tái)的程序端就很方便了:
復(fù)制代碼 代碼如下:

private void InitDataSouce()
{
// 獲取數(shù)據(jù)
pct p;
for (int i = 0; i < 6000; i++)
{
p = new pct();
p.ID = i.ToString();
p.A1 = string.Format("{0}-1", i.ToString());
p.A2 = string.Format("{0}-2", i.ToString());
dbsouce.Add(p);
}
Repeater1.DataSource = dbsouce;
Repeater1.DataBind();
// 序列化
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray;
int index = 0;
foreach(pct temp in dbsouce)
{
jsonArray = new JSONArray();
jsonArray.Add(temp.ID);
jsonArray.Add(temp.A1);
jsonArray.Add(temp.A2);
jsonObject.Add(index.ToString(), jsonArray);
// 第二種方式,占用更多字符
//jsonObject1 = new JSONObject();
//jsonObject1.Add("ID", temp.ID);
//jsonObject1.Add("A1", temp.A1);
//jsonObject1.Add("A2", temp.A2);
//jsonObject.Add(temp.ID, jsonObject1);
index++;
}
this.TextBox2.Text = JSONConvert.SerializeObject(jsonObject);
}
#endregion

相關(guān)文章

  • .net 添加Cookie的4種方法

    .net 添加Cookie的4種方法

    這篇文章主要介紹了.net 添加Cookie的4種方法,有需要的朋友可以參考一下
    2014-01-01
  • 詳解CentOS 7.4下如何部署Asp.Net Core結(jié)合consul

    詳解CentOS 7.4下如何部署Asp.Net Core結(jié)合consul

    這篇文章主要介紹了詳解CentOS 7.4下如何部署Asp.Net Core結(jié)合consul,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • WEB上調(diào)用HttpWebRequest奇怪問(wèn)題的解決方法

    WEB上調(diào)用HttpWebRequest奇怪問(wèn)題的解決方法

    WEB上調(diào)用HttpWebRequest奇怪問(wèn)題的解決方法...
    2007-04-04
  • C#中常用的IO操作介紹

    C#中常用的IO操作介紹

    這篇文章介紹了C#中常用的IO操作,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • .net中string類(lèi)型可以作為lock的鎖對(duì)象嗎

    .net中string類(lèi)型可以作為lock的鎖對(duì)象嗎

    lock 關(guān)鍵字是用于在多線程編程中實(shí)現(xiàn)同步和互斥訪問(wèn)的關(guān)鍵字,它的作用是確保共享資源在任意時(shí)刻只能被一個(gè)線程訪問(wèn),從而避免出現(xiàn)競(jìng)態(tài)條件(race condition)和數(shù)據(jù)不一致的問(wèn)題,這篇文章主要介紹了string類(lèi)型可以作為lock的鎖對(duì)象嗎,需要的朋友可以參考下
    2023-06-06
  • 新手入門(mén):C++下的引用類(lèi)型

    新手入門(mén):C++下的引用類(lèi)型

    新手入門(mén):C++下的引用類(lèi)型...
    2006-09-09
  • 深入探究ASP.NET Core Startup初始化問(wèn)題

    深入探究ASP.NET Core Startup初始化問(wèn)題

    這篇文章主要介紹了深入探究ASP.NET Core Startup初始化問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 詳解.Net Core中的日志組件(Logging)

    詳解.Net Core中的日志組件(Logging)

    這篇文章主要介紹了詳解.Net Core中的日志組件(Logging),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • ASP.NET驗(yàn)證碼實(shí)現(xiàn)(附源碼)

    ASP.NET驗(yàn)證碼實(shí)現(xiàn)(附源碼)

    這篇文章主要介紹了ASP.NET驗(yàn)證碼實(shí)現(xiàn)過(guò)程,并為大家分享了源碼下載,感興趣的小伙伴們可以參考一下
    2015-11-11
  • asp.net中生成餅狀與柱狀圖實(shí)例

    asp.net中生成餅狀與柱狀圖實(shí)例

    這篇文章主要介紹了asp.net中生成餅狀與柱狀圖的方法,以實(shí)例形式較為詳細(xì)的講述了生成餅狀與柱狀圖的原理與具體代碼,包括前后臺(tái)的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-11-11

最新評(píng)論

安乡县| 临泽县| 云梦县| 兴城市| 海南省| 北海市| 娄底市| 上蔡县| 永顺县| 安丘市| 阳谷县| 平昌县| 墨竹工卡县| 合川市| 中超| 重庆市| 苗栗县| 股票| 桓仁| 溆浦县| 海城市| 乌鲁木齐县| 锡林浩特市| 特克斯县| 黄平县| 灌云县| 绍兴县| 清涧县| 吴川市| 阿克| 綦江县| 新闻| 武陟县| 新平| 漳州市| 四平市| 阳西县| 庆安县| 湘乡市| 桑日县| 馆陶县|