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
>
查看全文
相关阅读:
牛客练习赛53 B题调和级数
装备购买(线性基)
杨氏矩阵与勾长公式
南昌邀请赛B题(拉格朗日插值)
徐州网络赛补题
__int128 输入输出模板
51 nod1067 Bash游戏 V2(sg函数打表)
堆优化的dijkstra算法
ST表求区间最值
Tree Reconstruction
原文地址:https://www.cnblogs.com/jiangshaofen/p/717612.html
最新文章
Codeforces Round #645 (Div. 2) C
【数位DP】二四六七八
【数位DP】HDU 2089 不要62
【最短路】POJ 1847 Tram
【贪心/博弈】CF1363C Game On Leave
【C语言】文件操作
H. Binary Median
【最短路/最小生成树】POJ 2253 Frogger
【最短路/最大生成树】POJ 1797 Heavy Transportation
【算法】线段树
热门文章
【最短路】POJ 1511 Invitation Cards
LCA(最小公共祖先节点问题)POJ1330
POJ1236
Tarjan算法(缩强连通子图为节点)
二分图匹配的最小覆盖点集问题
HDU2112(hash+dijkstra)
母函数的一些简单想法(HDU2110)
最长子串问题
POJ1679(判断是否为唯一MST)
异或空间
Copyright © 2011-2022 走看看