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
>
查看全文
相关阅读:
操作系统--怎么实现中断
操作系统中的描述符和GDT
使用汇编语言实现memcpy
Redis命令之setbit
java webService 服务端的创建 和 客户端代码的生成与使用
springbooot 项目读取yml配置文件(自定义)
java自定义注解的使用(校验)
mysql使用存储过程快速插入百万条数据
springboot项目集成Mybatisplus配置和使用
mysql 创建函数的过程和使用
原文地址:https://www.cnblogs.com/jiangshaofen/p/717612.html
最新文章
django中间件
python标准库glob 递归目录下所有文件
mysql all_ip_test局域网IP测试工具,有需要的改一改.
django 中的hello word 开心,通过申请博客了,,发个随笔庆祝一下~~~~~~~
分布式锁的几种实现
Java随机数的使用
文件系统
数据库和缓存一致性问题
延时任务的实现
短链接的设计与实现
热门文章
Redis 高并发带来的一些问题
阿里销售铁军
数据库的优化过程
部署的策略对比
敲击键盘后字符怎么出现在显示器
怎么实现进程切换
汇编函数阅读笔记
操作系统---在内核中重新加载GDT和堆栈
操作系统---IO权限管理和敏感指令
操作系统--特权级切换
Copyright © 2011-2022 走看看