asp.net新建窗口

asp.net新建窗口,第1张

这要用到asp.net的页面静态化 ----------------index.htm页面代码------------------------- <html><head></head><body><form id="form1" action="http://localhost/dddddd/webform1.aspx" method="get" ><input type="hidden" name="ct" value="22"><input type="hidden" name="cm" value="100009"><input type="hidden" name="tn" value="ikreplysubmit"><input type="hidden" name="qid" value="19229897"><input type="hidden" name="cid" value="93"><textarea name="content" cols="50" rows="10"></textarea><br><input type="submit" value="提交" ></form></body></html>---------------------------------------------------- --------动态接受页面代码WebForm1.aspx---------------------------- <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="dddddd.WebForm1" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML><HEAD><title>WebForm1</title><meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"><meta name="CODE_LANGUAGE" Content="C#"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_targetSchema" content=" http://schemas.microsoft.com/intellisense/ie5"></HEAD><body MS_POSITIONING="GridLayout"><form id="Form1" method="post" runat="server"><FONT face="宋体"></FONT></form></body></HTML>-------------------------------------------------------- -------------动态接受页面代码WebForm1.aspx.cs---------------- using Systemusing System.Collectionsusing System.ComponentModelusing System.Datausing System.Drawingusing System.Webusing System.Web.SessionStateusing System.Web.UIusing System.Web.UI.WebControlsusing System.Web.UI.HtmlControlsnamespace dddddd { /// <summary>/// Summary description for WebForm1. /// </summary>public class WebForm1 : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here string content = Page.Request.Form["content"]if (content != string.Empty) { Page.Response.Write ("content=")Page.Response.Write (content) } else { Page.Response.Write ("出现错误")} } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent()base.OnInit(e)} /// <summary>/// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary>private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load)} #endregion } } --------------------------------------------------------- 动态页面也就是接受到静态页面的数据之后直接输入而已,实际应用中,可能要作些数据库保存记录,然后根据模板重写 html文件更新静态页面,然后还可以重定向到这个页面上去。 需要注意的是,如果在index.htm中form method指定为get的话,那么在动态网页这边只能使用 Page.Request.Params["content"]来获取数据了, 这时 Page.Request.Form["content"]等不到数据了,不过如果method指定为post的话,应为传上来就是form变量,所以 Page.Request.Params["content"]和Page.Request.Form["content"]都可以得到数据。不明白就查一下 method还有Request.Params、Page.Request.Form的区别了。 不过我做的时候还发现上面的代码出现回复提交中文的时候出现乱码的情况。明显是编码问题,在<head>标签之间加上<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8">一句指定网页编码。变成下面这样,在提交中文就不会乱码了。 ------------------------index.htm------------------------- <html><head><meta http-equiv="Content-Type" content="text/htmlcharset=utf-8"></head><body><form id="form1" action="http://localhost/d/webform1.aspx" method="post" ><input type="hidden" name="ct" value="22"><input type="hidden" name="cm" value="100009"><input type="hidden" name="tn" value="ikreplysubmit"><input type="hidden" name="qid" value="19229897"><input type="hidden" name="cid" value="93"><textarea name="content" cols="50" rows="10"></textarea><br><input type="submit" value="提交" ></form></body></html>---------------------------------------------------------- ------------WebForm1.aspx---------------------------------------------- <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="dddddd.WebForm1" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML><HEAD><title>WebForm1</title><meta http-equiv="Content-Type" content="text/htmlcharset=utf-8"><meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"><meta name="CODE_LANGUAGE" Content="C#"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_targetSchema" content=" http://schemas.microsoft.com/intellisense/ie5"></HEAD><body MS_POSITIONING="GridLayout"><form id="Form1" method="post" runat="server"><FONT face="宋体"></FONT></form></body></HTML>

由于项目要用到d出窗口 或者叫做模拟窗口 这段时间就研究了下 解决方案很多 比如 window open()window showDialog()用层模拟 框架+DIV+Javascript

用window open() 这种方法的缺点是 会被浏览器或者相关软件给屏蔽掉 用层模拟的话 如果想实现较复杂点的窗口 就比较困难 第三种方法是综合了所有的网页制作知识 可以提供个很好的解决方案 但是 第三种实现起来 对于Javascript知识不够的人来说 很难完成 前段时间在网上逛的时候 发现了个好的解决方案 GreyBox 经过反复研究 发现 GreyBox几乎可以完成所有的d出窗口(但是 好像对框架中的框架不太支持) 为了方便使用 我把GreyBox封装为一个控件 现在把用法贴出来

涉及到的文件:GreyBox dll(动态库) greyboxloader aspx greyboxloader aspx cs (加载网页的框架) gb_styles css(样式表)

添加文件:

① 添加引用GreyBox dll 到Bin文件夹② 添加greyboxloader aspx greyboxloader aspx cs到项目的根目录 ③ 添加gb_styles css文件到imges/css/ 文件夹下

调用方法:

 ①引用控件

在页面顶部加入代码

<%@ Register Assembly= GreyBox Namespace= GreyBox TagPrefix= cc %>

在<form></form>之间添加代码

<cc :GreyBox id= Geybox runat= server ></cc :GreyBox>

②加载CSS文件:

  HtmlLink myHtmlLink = new HtmlLink()  myHtmlLink Href = images/css/gb_styles css   myHtmlLink Attributes Add( rel stylesheet )  myHtmlLink Attributes Add( type text/css )  Page Header Controls Add(myHtmlLink)

 ③注册d出新窗口事件(以Button为例):

  this Button Attributes Add( onclick return GB_showCenter( 修改密码 echangepw aspx ) )  GB_showCenter( title url height width)

方法的参数说明:

title:d出窗口的标题url:网址或者网页文件名height:d出窗口的高度width:d出窗口的宽度

这样 点击Button 就可以d出一个窗口了

方法:

关闭窗口:

Response Write( <script language=javascript>parent parent GB_hide()</script>)

提交并关闭窗口:

有框架的情况(IFRAME)

Response Write( <script language=javascript>parent parent document forms( ) submit()</script>)

无框架的情况 

Response Write( <script language=javascript>top window document forms( ) submit()</script>)lishixinzhi/Article/program/net/201311/15519


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11751610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存