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
>
查看全文
相关阅读:
将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》
深度 | 提升深度学习模型的表现,你需要这20个技巧(附论文)
[线性代数] 矩阵白化
基于搜索的贝叶斯网络结构学习算法-K2
Deep learning:四十三(用Hessian Free方法训练Deep Network)
2020年AI、CV、NLP顶会最全时间表
浅谈人脸识别中的loss 损失函数
控制uniFrame显示的一个管理类
php+sqlserver之如何操作sqlserver数据库
php支持连接sqlserver数据库
原文地址:https://www.cnblogs.com/jiangshaofen/p/717612.html
最新文章
你必须要了解的大数据潮流下的机器学习及应用场景
Java中的String,StringBuilder,StringBuffer三者的区别
git解决冲突(rebase版)
git branch --set-upstream 本地关联远程分支
Java SE 8 并发增强
json过滤某些属性 之@jsonignore
Java对象的序列化与反序列化-Json篇
Spring Boot 一个依赖搞定 session 共享,没有比这更简单的方案了!
Spring-Boot-操作-Redis,三种方案全解析!
是时候搞清楚 Spring Boot 的配置文件 application.properties 了!
热门文章
这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境!
做IT这几年,我整理了这些干货想要送给你!
Spring Boot + Vue 前后端分离开发,权限管理的一点思路
Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置
徒手撸一个 Spring Boot 中的 Starter ,解密自动化配置黑魔法!
整理了八个开源的 Spring Boot 学习资源
提高性能,MySQL 读写分离环境搭建
Sparse PCA 稀疏主成分分析
中国计算机学会推荐国际学术会议(人工智能
19种损失函数,你能认识几个?
Copyright © 2011-2022 走看看