第一次进入aspx页面,就要读取出大量数据。写入页面中。使用都在页面要有添删改的操作,而且只有当点击面的保存按钮才能真正的写入到数据库中。因此我选择了Ajax+JSON的方式来实现这个页面。
复制代码 代码如下:
<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>
所属机构</th>
<th>
职业群组</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>
所用到的页面端的JS是:
复制代码 代码如下:
<script type="text/javascript">
// 删除表格中的一项
function dataDel(id){
// 利用ajax使用C#的正则去掉json中的一项
var objId;
objId = "<%= this.TextBox1.ClientID %>";
jQuery("#"+objId).val(id);
objId = "<%= this.Button2.ClientID %>";
jQuery("#"+objId).click();
// 删除表格中的tr一行
jQuery("#pct-"+id).hide();
}
var pageTableIdGlobe;
// 添加表中的一项
function dateAdd(pageTableId){
// 备份到全局变量中
pageTableIdGlobe = pageTableId;
// 获取要查询的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进入后台查找数据库
PageMethods.AddPageContallorItem(id, RedirectSearchResult);
}else{
alert("已存在列表中");
return;
}
}
// 将要添加的数据,ajax的回调处理方法
function RedirectSearchResult(result){
var html;
// alert(result);
if (result == "error"){
alert("数据读取出错");
}else{
// 生成新的表格中的一行HTML
html = CreatePageHtml(result);
// 在页面显示HTML
jQuery("#"+pageTableIdGlobe).before(html);
// 更新json,以备写入数据库
var objId = "<%= this.TextBox2.ClientID %>";
FlashJson(objId, result);
}
}
// 生成新的一行表格HTML
function CreatePageHtml(result){
var html;
var data = eval("("+result+")");// 转换为json对象
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写入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>
后台的程序端就很方便了:
复制代码 代码如下:
private void InitDataSouce()
{
// 获取数据
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
复制代码 代码如下:
<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>
所属机构</th>
<th>
职业群组</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>
所用到的页面端的JS是:
复制代码 代码如下:
<script type="text/javascript">
// 删除表格中的一项
function dataDel(id){
// 利用ajax使用C#的正则去掉json中的一项
var objId;
objId = "<%= this.TextBox1.ClientID %>";
jQuery("#"+objId).val(id);
objId = "<%= this.Button2.ClientID %>";
jQuery("#"+objId).click();
// 删除表格中的tr一行
jQuery("#pct-"+id).hide();
}
var pageTableIdGlobe;
// 添加表中的一项
function dateAdd(pageTableId){
// 备份到全局变量中
pageTableIdGlobe = pageTableId;
// 获取要查询的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进入后台查找数据库
PageMethods.AddPageContallorItem(id, RedirectSearchResult);
}else{
alert("已存在列表中");
return;
}
}
// 将要添加的数据,ajax的回调处理方法
function RedirectSearchResult(result){
var html;
// alert(result);
if (result == "error"){
alert("数据读取出错");
}else{
// 生成新的表格中的一行HTML
html = CreatePageHtml(result);
// 在页面显示HTML
jQuery("#"+pageTableIdGlobe).before(html);
// 更新json,以备写入数据库
var objId = "<%= this.TextBox2.ClientID %>";
FlashJson(objId, result);
}
}
// 生成新的一行表格HTML
function CreatePageHtml(result){
var html;
var data = eval("("+result+")");// 转换为json对象
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写入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>
后台的程序端就很方便了:
复制代码 代码如下:
private void InitDataSouce()
{
// 获取数据
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
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月17日
2024年11月17日
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】