zoukankan
html css js c++ java
弹出窗返回数据实体对象或对象集
在项目中经常遇到字典数据的查询选择输入,为避免手工输入造成错误,常做成公共页(假设为test.aspx)以便在多处使用.下面利用Newtonsoft.Json序列化实体对象,以返回数据实体或实体集.
一:封装一个PopUpWindow工具类.需要引用Newtonsoft.Json.dll.
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Web.UI;
using
Newtonsoft.Json;
using
System.Web;
namespace
****
.Core.Common
{
/**/
///
<summary>
///
弹出窗口工具类
///
</summary>
///
<remarks>
///
实现了弹出窗口返回对象的封装方法
///
</remarks>
///
Title: PopUpWindow
public
class
PopUpWindow
{
/**/
///
<summary>
///
将对象返回给调用页面
///
</summary>
///
<param name="entity">
需要返回的对象实例
</param>
///
<param name="page">
调用此方法的page本身
</param>
public
static
void
ReturnObject(Object entity, Page page)
{
//
使用JSON序列化对象
string
output
=
String.Format(
"
var retObj = {0};
"
, JavaScriptConvert.SerializeObject(entity));
//
注册脚本到弹出窗口以返回序列化后的对象
Type cstype
=
HttpContext.Current.GetType();
ClientScriptManager cs
=
page.ClientScript;
//
将实体返回给调用方caller
String csname1
=
"
CloseScript
"
;
if
(
!
cs.IsStartupScriptRegistered(cstype, csname1))
{
String cstext1
=
String.Format(
"
{0} window.returnValue = {1};window.close();
"
, output,
"
retObj
"
);
cs.RegisterStartupScript(cstype, csname1, cstext1,
true
);
}
}
}
}
二:在公共页某按钮事件里设置返回数据,例如:
protected
void
Button1_Click1(
object
sender, EventArgs e)
{
//
创建需要返回的实体对象
SampleEntity entity
=
new
SampleEntity();
entity.ProjectNo
=
TextBox1.Text;
entity.ProjectName
=
TextBox2.Text;
//
将对象返回给调用页面
PopUpWindow.ReturnObject(entity,
this
);
/**/
///
/创建需要返回的实体对象列表
//
SampleEntity entity1 = new SampleEntity();
//
entity1.ProjectNo = TextBox1.Text;
//
SampleEntity entity2 = new SampleEntity();
//
entity2.ProjectNo = TextBox2.Text;
//
List<SampleEntity> list = new List<SampleEntity>();
//
list.Add(entity1);
//
list.Add(entity2);
/**/
///
/将对象返回给调用页面
//
PopUpWindow.ReturnObject(list, this);
}
三:在调用页放置一客户端图片控件,例如:
<
img
src
="../images/lookup.gif"
onclick
="OnQueryClick()"
id
="btnImage"
alt
="点击我!"
tyle
="cursor: hand"
/>
然后在客户端脚本中加入如下代码即可,建议以模式窗口打开.
//获得弹出窗口的返回对象
<
script
type
="text/javascript"
>
function
OnQueryClick()
{
var
address
=
"
test.aspx
"
;
var
parameter1
=
""
;
var
OpenStyle
=
"
dialogWidth:650px;dialogHeight:550px;dialogLeft:200px;dialogTop:150px;center:yes;help:false;resizable:false;status:false
"
;
var
returnValue
=
window.showModalDialog(address,parameter1,OpenStyle);
//
分别获取返回对象的属性
if
(returnValue
!=
null
)
{
document.getElementById(
"
ctl00$ContentPlaceHolder1$txtProjectNo
"
).value
=
returnValue.ProjectNo;
document.getElementById(
"
ctl00$ContentPlaceHolder1$txtProjectName
"
).value
=
returnValue.ProjectName;
}
}
</
script
>
查看全文
相关阅读:
bzoj2733 永无乡 平衡树按秩合并
bzoj2752 高速公路 线段树
bzoj1052 覆盖问题 二分答案 dfs
bzoj1584 打扫卫生 dp
bzoj1854 游戏 二分图
bzoj3316 JC loves Mkk 二分答案 单调队列
bzoj3643 Phi的反函数 数学 搜索
有一种恐怖,叫大爆搜
BZOJ3566 概率充电器 概率dp
一些奇奇怪怪的过题思路
原文地址:https://www.cnblogs.com/jiangshaofen/p/717612.html
最新文章
bzoj1880 [SDOI2009]Elaxia的路线
洛谷2055 [ZJOI2009]假期的宿舍
bzoj2333 [SCOI2011]棘手的操作(洛谷3273)
洛谷3627 [APIO2009]抢掠计划
洛谷1262 间谍网络
洛谷2002 消息扩散
bzoj2190--仪仗队--欧拉函数
bzoj3036--绿豆蛙的归宿--期望dp
bzoj1190--梦幻岛宝珠--分层dp+01背包
NOIp2016Day1T3--换教室--概率dp+floyd
热门文章
poj2253--Frogger--最小瓶颈树
bzoj2751--[HAOI]2012容易题--组合(乘法原理)
poj2182--Lost Cows--树状数组+二分
poj3219--二项式系数--组合数的奇偶性
bzoj2738 矩阵乘法 整体二分
bzoj3874 宅男计划 三分 贪心
bzoj3162 独钓寒江雪 树Hash 树dp 组合数学
bzoj3165 segment 超哥线段树
uoj219 优秀的拆分 字符串
bzoj1014 火星人prefix Splay 字符串Hash
Copyright © 2011-2022 走看看