有关页面间参数传递的问题!(非高手不能解决)

lzlhero 2002-12-11 11:13:40
我先描述一下要求,以下文件全部为ASPX文件
1.主页面:用于输入一部分数据
2.从页面:用于输入一部分数据

主页面使用Javascript脚本"window.showModalDialog()"方法打开从页面,在从页面里输入部分数据后,我希望将操作后的结果以服务器变量的形式返回到主页面中,同时,主页面不进行刷新。(以上的操作,要求和VC模态窗口的参数传递原理相同)。当主页面的数据也输入完成后,点击提交按钮,所有的数据合并在一起,全部提交到服务器端。

不知高手们有没有什么好的解决方法,最好能给出示例,小弟在此100分相送!
...全文
63 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzlhero 2003-01-07
  • 打赏
  • 举报
回复
多谢各位大哥照着!
houjianxun 2003-01-02
  • 打赏
  • 举报
回复
给个提示:
1、page1 用window.showModalDialog()打开 page2
2、return page2 用page1中的html控件接收,页面可以不进行刷新
MeteorOnNet 2003-01-02
  • 打赏
  • 举报
回复
提供两种方法:
一、将两个页面做在一起,只是换一种风格,就能够保证同步,或是将其中一个隐藏。
二、将从页面获得的参数以XML的形式返回,即可作为主页面的一部分,同时页面也不刷新!
yohomonkey 2003-01-02
  • 打赏
  • 举报
回复
用脚本就没有办法用服务器端的变量,不用post就只有用脚本,只有选择其一。
dogdogdog 2003-01-02
  • 打赏
  • 举报
回复
Server.Transfer("SecondPage.aspx")
Lostinet 2002-12-11
  • 打赏
  • 举报
回复
使用方法是,把XX:ModalDialog放到aspx中,设置好属性,和设置好事件。

例如在
Button_Click(..)
{
ModalDialog1.Param="somestring";
ModalDialog1.Url="xxx.aspx?id="+someid;
ModalDialog1.Show();
}

ModalDialog1_Return(..)
{
string str=ModalDialog1.ReturnValue;
//得到下面的"str2"
//处理对话框返回的信息。
}

-------
而在xxx.aspx中,使用客户端JavaScript

function window.onload()
{
var str=top.dialogArguments;//得到"somestring"
}
function window.onunload()
{
top.returnValue="str2";
}

动态的变量处理,自己搞吧。
Lostinet 2002-12-11
  • 打赏
  • 举报
回复
<!-- dialog.html -->

<html>
<head>
<title id="theTitle">ModalDialog</title>
</head>
<body style="margin:0px;padding:0px;border:0px;overflow:hidden;" scroll="no">
</body>
<script>
var args={};
var str=location.search;
str=str.substring(1)
arr=str.split("&");
for(var i=0;i<arr.length;i++)
{
var item=arr[i];
var arr2=item.split("=");
if(arr2.length<2)
continue;
args[arr2[0]]=unescape(arr2[1]);
}
var url=args["url"];
var referer=args["referer"];

function GetDir(str)
{
var last=str.lastIndexOf("/");
return str.substr(0,last+1);
}

function window.onload()
{
if(url)
{
switch(true)
{
case url.substr(0,7).toLowerCase()=="http://":
case url.substr(0,1)=="/":
break;
default:
if(referer)
{
url=GetDir(referer)+url;
}
else
{

}
break;
}
document.body.innerHTML="<iframe id=theFrame src=\""+url+"\" width="+document.body.clientWidth+" height="+document.body.clientHeight+"></iframe>";
var f=document.getElementById("theFrame");
f.runtimeStyle.setExpression("width","document.body.clientWidth+'px'");
f.runtimeStyle.setExpression("height","document.body.clientHeight+'px'");
}
else
{
document.body.innerHTML="没有指定URL";
}
}
</script>
</html>
Lostinet 2002-12-11
  • 打赏
  • 举报
回复
倒。不POSTBACK怎样以服务器变量的形式返回?

这是我做的一个简单的东西,你可以参考一下。
其中有的对象我没有提供给你,所以你是没有办法直接使用的。
但是你可以根据思路自己弄个。。


using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using XXXXXX;

namespace XXXXXX.Controls
{

/// <summary>
/// 提供调用window.showModialogDialog的代理。
/// </summary>
/// <remarks>
/// 显示出的Dialog是用一个Iframe包含目标url的。
/// 该url的window.returnValue会自动转换成string类型返回到ReturnValue
/// 关联Return事件,用ReturnValue来取得Dialog的返回值
/// </remarks>
public class ModalDialog : Control,IPostBackEventHandler,INamingContainer
{
[Serializable]
private class State
{
//custom variables here
public object Context=null;
}
//state
private State state=new State();
protected override void LoadViewState(object savedState)
{
object[] states=(object[])savedState;
state=(State)states[0];
base.LoadViewState(states[1]);
}
protected override object SaveViewState()
{
return new object[]{state,base.SaveViewState()};
}


/// <summary>
/// 用来保存相关对象
/// </summary>
public object DialogContext
{
get{return state.Context;}
set{state.Context=value;}
}

protected TextBox theTextBox;

protected bool shouldShow=false;
protected string result="";

/// <summary>
/// 显示对话框。只一次有效
/// </summary>
public void Show()
{
shouldShow=true;
}
/// <summary>
/// 取消Show的调用
/// </summary>
public void Hide()
{
shouldShow=false;
}

public enum ParamType
{
/// <summary>
/// Param作为一个字符串传递到Dialog中。
/// Dialog页应该使用var str=top.dialogArguments;来取得该Param
/// </summary>
STRING
,
/// <summary>
/// Param作为代码来执行,并且传递到Dialog中。
/// 例如 Param="[window,'myarg1',333]"
/// Dialog页就使用
/// var arr=top.dialogArguments;
/// var win=arr[0];
/// var str=arr[1];
/// var num=arr[2];
/// 来得到多个任意脚本类型和ActiveX的参数
/// </summary>
CUSTOM
}
protected ParamType _Type=ParamType.STRING;
protected string _Url="";
protected string _Param="";
protected int _Width=600;
protected int _Height=420;
protected int _Left=100;
protected int _Top=100;
protected bool _Center=true;
protected bool _Resizable=true;
protected bool _Help=false;
protected bool _Status=false;

public ParamType Type
{
get{return _Type;}
set{_Type=value;}
}

/// <summary>
/// 要显示的页面的Url
/// </summary>
public string Url
{
get{return _Url;}
set{_Url=value;}
}
/// <summary>
/// 传递给ModalDialog的参数,只能是字符串
/// </summary>
public string Param
{
get{return _Param;}
set{_Param=value;}
}

public int Width
{
get{return _Width;}
set{_Width=value;}
}
public int Height
{
get{return _Height;}
set{_Height=value;}
}
public int Left
{
get{return _Left;}
set{_Left=value;}
}
public int Top
{
get{return _Top;}
set{_Top=value;}
}
public bool Center
{
get{return _Center;}
set{_Center=value;}
}
public bool Status
{
get{return _Status;}
set{_Status=value;}
}
public bool Help
{
get{return _Help;}
set{_Help=value;}
}
public bool Resizable
{
get{return _Resizable;}
set{_Resizable=value;}
}

/// <summary>
/// Dialog的返回值
/// </summary>
/// <remarks>
/// 这个值只会在Return事件触发后才有效
/// </remarks>
public string Result
{
get{return result;}
}

/// <summary>
/// 当ModalDialog返回的时候
/// </summary>
public event EventHandler Return
{
add
{
Events.AddHandler("Return",value);
}
remove
{
Events.RemoveHandler("Return",value);
}
}

protected virtual void OnReturn(object sender,EventArgs e)
{
EventHandler delegateHandler=(EventHandler)Events["Return"];
if(delegateHandler!=null)
delegateHandler(sender,e);
}

public void RaisePostBackEvent(string eventArgument)
{
EnsureChildControls();
result=theTextBox.Text;
OnReturn(this,null);
}

protected string GetOptionString()
{
return ""
+(Center?"":("dialogLeft:"+Left+"px;"+"dialogTop:"+Top+"px;"))
+"resizable:"+(Resizable?1:0)+";"
+"help:"+(Help?1:0)+";"
+"center:"+(Center?1:0)+";"
+"status:"+(Status?1:0)+";"
;
}
protected override void Render(System.Web.UI.HtmlTextWriter w)
{
base.Render(w);

if(!shouldShow)
return;

string strParam="";
switch(Type)
{
case ParamType.STRING:
strParam="'"+E.EncodeJScript(Param)+"'";
break;
case ParamType.CUSTOM:
strParam=Param;
break;
}

w.WriteLine("<script>");
w.WriteLine("window.attachEvent('onload',function(){");
w.WriteLine(
String.Format(@"
var _height=Math.min({7},screen.availHeight);
var _width=Math.min({6},screen.availWidth);
var _option='{3}'+';dialogHeight:'+_height+'px;'+';dialogWidth:'+_width+'px;';
var _param={2};
var _trueurl='{5}XXXXXX_client/dialog.html?url='+escape('{0}')+'&referer='+escape('{1}');
var _res=showModalDialog(_trueurl,_param,_option);
_res=_res||'';
document.getElementById('{8}').value=_res+'';
"
,E.EncodeJScript(Url)
,E.EncodeJScript(Page.Request.Path)
,strParam
,E.EncodeJScript(GetOptionString())
,E.EncodeJScript(this.UniqueID)
,E.EncodeJScript(E.GetAppPath())
,Width,Height
,E.EncodeJScript(theTextBox.UniqueID)
));

EventHandler delegateHandler=(EventHandler)Events["Return"];
if(delegateHandler!=null)
w.WriteLine(Page.GetPostBackEventReference(this));

w.WriteLine("});");
w.WriteLine("</script>");
}

protected override void CreateChildControls()
{
Controls.Add(new LiteralControl("<span style='display:none'>"));

theTextBox=new TextBox();
theTextBox.EnableViewState=false;
Controls.Add(theTextBox);

Controls.Add(new LiteralControl("</span>"));
}
}
}
  • 打赏
  • 举报
回复
对了,想顺便问问,如何用ASP.net来实现JavaScript中ShowModalDialog()的效果?
lzlhero 2002-12-11
  • 打赏
  • 举报
回复
声明一下,我的要求不同以往经典的数据传递方式,SESSION,COOKIE,QUERY,最好不要用。
因为我这个是量非常大的对象,并且是自定义的对象,我的“主页面”还要引用此”从页面“的对象呢!
henryfan1 2002-12-11
  • 打赏
  • 举报
回复
用JAVASCRIPT 写Cookie应该可以
paladinDv 2002-12-11
  • 打赏
  • 举报
回复
用javascript操纵Parent页的hidden域。
yohomonkey 2002-12-11
  • 打赏
  • 举报
回复
老哥,不postback就只有有脚本来该写parent页面的数据了!应该是可以的。但是parent页面要有向应的控件来接收数据。
本研究设计并实现了一个基于微博数据的舆情热点分析与情感挖掘系统。该系统旨在深度融合爬虫技术、自然语言处理(NLP)与机器学习算法,以实现对海量微博数据的自动化采集、清洗、分析,并最终通过动态可视化手段直观呈现舆情的演化规律与情感倾向。本研究的核心目标在于构建一个高效、准确的系统,以解决以下关键问题:(1) 提升对微博短文本,尤其是包含反讽、缩写和网络用语(如“yyds”、“绝绝子”)文本的情感分析准确率;(2) 优化对热点话题的识别与追踪能力,克服短文本特征稀疏性带来的困难;(3) 融合多维度特征(文本内容、用户行为、时序列)实现对未来72小时舆情热度的预测;(4) 设计交互式可视化界面,动态展示话题的产生、发展、消退全过程,并建立舆情预警指数模型,为决策提供支持。为达成上述目标,本研究的主要工作内容与方法如下: 1、**数据采集与预处理**:系统通过Scrapy框架结合微博开放API构建分布式爬虫集群(Scrapy-Redis),并采用IP代理池技术,以突破反爬机制,实现分钟级的高效数据抓取,采集字段包括微博文本、发布时、用户信息、转发/评论数等元数据。 2、**情感分析模块**:为精准捕捉微博文本的情感极性(正面、负面、中性),本研究对比并采用了多种模型。 3、**热点分析与主题挖掘**:为从海量微博中发现和追踪热点话题,本研究采用了无监督与有监督相结合的方法。 4、**舆情预测与可视化**:舆情热度的预测是一个重要的时序预测问题。 【文章内容】 摘要 第1章 绪论 第2章 相关技术与理论 第3章 系统需求分析 第4章 系统总体设计 第5章 系统详细设计与实现 第6章 系统测试与分析 第7章 总结与展望 参考文献 附件-实现指南
标题SpringBoot归家租房小程序的设计与实现研究AI更换标题第1章引言介绍SpringBoot归家租房小程序的研究背景、意义、现状以及论文的方法和创新点。1.1研究背景与意义分析租房市场的现状与需求,阐述小程序开发的必要性。1.2国内外研究现状概述国内外租房平台和小程序的发展现状。1.3研究方法以及创新点简述采用SpringBoot框架开发的优势及创新点。第2章相关理论总结和评述与小程序开发相关的现有理论,确立研究的理论基础。2.1SpringBoot框架概述介绍SpringBoot框架的特点、优势及适用场景。2.2小程序开发技术概述小程序开发的关键技术,如前端框架、后端服务等。2.3数据库技术阐述数据库在小程序中的应用,包括数据存储、查询等。第3章归家租房小程序设计详细描述归家租房小程序的整体设计方案。3.1系统架构设计介绍系统的整体架构,包括前端、后端和数据库的连接方式。3.2功能模块设计详细阐述小程序的各个功能模块,如房源展示、搜索、预约等。3.3界面设计介绍小程序的界面设计,包括用户交互、视觉效果等。第4章归家租房小程序实现详细介绍归家租房小程序的实现过程。4.1开发环境搭建介绍开发所需的环境、工具及配置方法。4.2功能模块实现详细描述各个功能模块的实现过程,包括代码实现、测试等。4.3数据库实现阐述数据库的设计、实现及优化方法。第5章实验与分析对归家租房小程序进行实验验证和性能分析。5.1实验环境与数据介绍实验所采用的环境、数据集及评估指标。5.2实验方法与步骤给出实验的具体方法和步骤,包括功能测试、性能测试等。5.3实验结果与分析从功能完整性、性能稳定性等方面对实验结果进行详细分析。第6章结论与展望总结本文的研究成果,并展望未来的研究方向。6.1研究结论概括归家租房小程序的主要研究成果和创新点。6.2展望指出研究的不足之处以及未来改进和优化的方向。
内容概要:本文介绍了在亚马逊云上构建智能湖仓的最佳实践,重点阐述了现代数据架构的必要性及其核心技术组件。文章分析了传统数据湖与数据仓库面临的扩展性差、成本高、治理难等问题,提出以Amazon S3为核心,结合Glue、Lake Formation、Redshift、Athena、EMR、Kinesis等服务构建统一、弹性、安全的现代数据架构。通过Lake Formation实现细粒度的权限控制、数据治理和跨账户数据共享,支持数据民主化与合规性管理,并结合客户案例展示了如何利用云原生服务实现流数据处理、批处理自动化、即席查询与BI分析,全面提升数据处理效率与决策能力。; 适合人群:具备一定云计算与大数据基础知识,从事数据架构、数据工程、数据分析或云平台运维的相关技术人员及企业决策者,尤其适用于计划或正在进行云上数据平台建设的团队。; 使用场景及目标:①构建可扩展、低成本、高性能的云上智能湖仓架构;②实现跨服务、跨账户的安全数据共享与精细权限管理;③整合流处理、批处理与交互式分析,提升数据处理敏捷性与决策效率;④推动企业数据治理与数据民主化协同发展; 阅读建议:此资源结合理论架构与实际案例,建议读者结合亚马逊云服务实际操作,重点关注Lake Formation在权限管理与数据共享中的应用,以及各组件的协同工作机制,深入理解现代数据架构的设计理念与落地路径。
【源码免费下载链接】:https://renmaiwang.cn/s/f7ixk 作为业内知名的开源消息转发工具,Apache ActiveMQ在Linux系统中展现出卓越的表现。该软件采用Java编程语言实现,并遵循Apache软件基金会的开放许可协议。它支持多种消息传递协议,包括XMPP、AMQP和STOMP等,能够为开发者提供灵活的消息处理能力。 该软件具备丰富且高度可定制的功能模块:首先,其强大的消息队列机制允许应用程序将待传输的消息存入队列中,并由其他应用遵循先进先出的顺序进行消费操作。其次,主题式发布与订阅模式通过主题实现了多消费者共享同一消息的能力,支持广播式的消息传递方式。此外,软件具备持久化功能,能够将未处理的消息存储在本地硬盘上,在服务器重启后依然能恢复已发送或接收的消息内容。 为了保证数据传输的一致性,Apache ActiveMQ还内置了事务管理机制。在消息的发送和接收过程中,系统会自动执行事务操作以确保数据的完整性与一致性。同时,该软件支持多种不同的通信协议,并仅限于Java应用环境,在需要时开发者还可以通过STOMP、AMQP或XMPP等协议实现跨平台的消息交流。 为了方便用户管理和监控软件运行状态,Apache ActiveMQ提供了一个直观的Web控制台界面。此外,其安全配置功能允许用户设置SSL/TLS加密选项以及权限管理策略,确保系统在高负载情况下依然能够维持稳定运行。该软件还具备集群支持和故障转移机制,在面对节点失效时能够自动切换至备用节点以保证服务可用性。 在实际部署过程中,用户需要首先安装Java运行环境(JRE或JDK),随后解压并配置Apache ActiveMQ的组件。启动过程通常会生成一个名为bin的子目录,其中包含用于控制软件服务的各种脚本文件。核心配置参数如端口号设置、持久化策略选择以及日志路径等都需要通过调整系统中指

62,250

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧