Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >asp.net中窗口相关操作总结(javascript)

asp.net中窗口相关操作总结(javascript)

作者头像
Java架构师必看
发布于 2020-09-30 02:26:12
发布于 2020-09-30 02:26:12
1.1K0
举报
文章被收录于专栏:Java架构师必看Java架构师必看

1.打开新窗口   这个简单:Response.Write(@    language=javasJavaScript

1.打开新窗口 

  这个简单:Response.Write(@"<script 

    language=' javascript'>window.open('url');</script>"); 

2.关闭窗口 

  //关闭当前窗口,并提示用户时候关闭,yes关闭,no退出 

  Response.Write(@"<script language=' javascript'>window.close();</script>"); 

  //延迟关闭窗口(下面代码表示2秒后关闭,无需确认) 

  Response.Write(@"<script 

    language=' javascript'>setTimeout('self.close()',2000);</script>"); 

3.延迟时间 

  这个和上面的没有多少区别.我用到的情况是,在用户操作完毕给出提示,"n秒后,页面 

    转向"之类的只需去掉2重的Self.close()即可 

  Response.Write(@"<script 

    language=' javascript'>setTimeout('',2000);</script>"); 

4.弹出提示或警告窗口 

  Response.Write(@"<script language=' javascript'>alert('添加成功,2秒钟后页面 

    将自动跳');</script>"); 

5.刷新其他页面 

  这个用到的情况还是不少.比如在B页面对数据更新和修改,另一页面A要保持最新数据 

  给客户,这是就要在对B操作完毕的情况下对A进行刷新: 

  Response.Write(@"<script language=' javascript'>window.opener.location. 

    href='./default.aspx'</script>") ; 

6.页面跳转 

  有时候在学要给出提示的情况下进行页面跳转,不能使用Response.Redirect("url"); 

  比如,当客户操作完毕,单击按钮提交,弹出提示框(使用上面3和4),如果使用了 

    Response.Redirect("url"); 

  那么页面将不给出提示,页就是3和4没有起作用就直接转向了. 

  如果你是下面的操作过程: 

  1).Response.Write(@"<script language=' javascript'>alert('添加成功,2秒钟后页 

    面将自动跳');</script>"); 

  2).Response.Write(@"<script 

    language=' javascript'>setTimeout('',2000);</script>"); 

  3).页面转向: 

    Response.Write("<meta http-equiv='refresh' 

    content='0;URL=./default.aspx'>"); 

    //这个我不知道用 javascript怎么实现,熟悉的轻补充一下 

7.窗口传制问题 

  这个问题比较烦,打开模态窗口(ShowModelDialog)我还没有实现,请各位补充. 

  具体情况是这样的,比如说A打开一个新窗口B,当用户对B操作完毕后,我们获得必要的 

  数据,自动将其赋给A中的TextBox等控件,这个过程是在客户端完成的.就像发送邮件时, 

  需要从地址本中选取,然后将选中的发送地址传回来. 

  1).在A中加入如下代码,打开一个新窗口B. 

     Response.Write(window.">@"window.

        open('B.aspx','','toolbar=no,menubar=no,status=yes,location=no, 

        resizable=no,scrollbars=no,width=500,height=350');</script>"); 

  2).对B操作完毕,获得必要数据tmpStr,然后将其赋值给A中的TextBox1 

     Response.Write(@"<script 

        language=' javascript'>opener.document.all.TextBox1. value

         ='" +tmpStr+"';</script>"); 

  注意:这个过程是在客户单用 javascript完成的,因此我们不能按照服务端的编程习惯 

以及不能使用web服务控件的服务端属性进行操作.TextBox1是一个web服务控件, 

其id为TextBox1,A页面被服务器解析为html,通过浏览器浏览,TextBox1就变成了 

纯html控件,我们这里用 javascript操作的也就是html控件,因此赋值使用的是 

TextBox1的 value属性而不是Text属性.另外,web服务器控件的id被解析成html后, 

id有时会变,我们只要注意使用服务器解析后的id就成了,在浏览器中右键->查看源文件 

即可得到 

  对第七种操作情况最好使用打开模态窗口windows.ShowModelDialog(),但是比较麻烦, 

我还没有实现. 

接上: 

调整本窗口大小和位置 

Response.Write("<script>window.resizeTo(500,400);</script>"); 

Response.Write("<script>window.moveTo(300,200);</script>"); 

接上: 

补:使用模态窗口传值 

主要代码如下: 

a.aspx and a.aspx.cs 

<%@ Page language="c#" Codebehind="a.aspx.cs" AutoEventWireup="false" 

Inherits="Genesis02.a" %> 

<HTML> 

    <HEAD> 

        <title>a</title> 

        <SCRIPT language=" javascript"> 

            var str; 

            function pop(url) 

            { 

                var myDialog = document.a.TBoxType. value

                if (window.showModalDialog) 

                { 

                    str=window.showModalDialog(url,myDialog,"dialogHeight: 

300px; dialogWidth: 500px;center: yes; help: no;resizable: yes; status: 

no;"); 

                    if (typeof(str) != "undefined") 

                    { 

                        document.a.TBoxType. value = str; 

                    } 

                } 

            } 

        </SCRIPT> 

    </HEAD> 

    <body MS_POSITIONING="GridLayout"> 

        <form id="a" method="post" runat="server"> 

            <asp:textbox id="TBoxType" 

runat="server"></asp:textbox><asp:button id="BtnGetType" Runat="server" 

Text="Open"></asp:button> 

        </form> 

    </body> 

</HTML> 

__________________________________________________________________ 

using System; 

using System.Collections; 

using System.ComponentModel; 

using System.Data; 

using System.Drawing; 

using System.Web; 

using System.Web.SessionState; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Web.UI.HtmlControls; 

namespace Genesis02 

    /// <summary> 

    /// a 的摘要说明。 

    /// </summary> 

    public class a : System.Web.UI.Page 

    { 

        protected System.Web.UI.WebControls.TextBox TBoxType; 

        protected System.Web.UI.WebControls.Button BtnGetType; 

        private void Page_Load(object sender, System.EventArgs e) 

        { 

            if (!IsPostBack) 

            { 

                BtnGetType.Attributes[" onclick"] = "pop('c.aspx');return 

false;"; 

            } 

        } 

        #region Web Form Designer generated code 

        override protected void OnInit(EventArgs e) 

        { 

            // 

            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 

            // 

            InitializeComponent(); 

            base.OnInit(e); 

        } 

        /// <summary> 

        /// 设计器支持所需的方法 - 不要使用代码编辑器修改 

        /// 此方法的内容。 

        /// </summary> 

        private void InitializeComponent() 

        { 

            this.Load += new System.EventHandler(this.Page_Load); 

        } 

        #endregion 

    } 

################################################################# 

b.aspx and b.aspx.cs 

<%@ Page language="c#" Codebehind="b.aspx.cs" AutoEventWireup="false" 

Inherits="Genesis02.b" %> 

<HTML> 

    <HEAD> 

        <title>b</title> 

        <SCRIPT language=" javascript"> 

        function closeme() 

        { 

            //top.return value = 

window.document.all.LBoxRFAContent.options[window.document.all.LBoxRFAContent 

.selectedindex]. value

            top.return value = document.getElementById("TBox value"). value

            top.close(); 

        } 

        function Body_Load() 

        { 

            if(window.dialogArguments != null) { 

                window.document.getElementById("TBox value"). value = 

window.dialogArguments; 

            } 

        } 

        </SCRIPT> 

    </HEAD> 

    <body MS_POSITIONING="GridLayout" οnlοad="Body_Load()"> 

        <form id="b" method="post" runat="server"> 

            <asp:Button id="BtnClose" style="Z-INDEX: 101; LEFT: 152px; 

POSITION: absolute; TOP: 131px" runat="server" Text="Close me"></asp:Button> 

            <asp:TextBox id="TBox value" style="Z-INDEX: 102; LEFT: 149px; 

POSITION: absolute; TOP: 69px" runat="server"></asp:TextBox> 

        </form> 

    </body> 

</HTML> 

__________________________________________________________________ 

using System; 

using System.Collections; 

using System.ComponentModel; 

using System.Data; 

using System.Drawing; 

using System.Web; 

using System.Web.SessionState; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Web.UI.HtmlControls; 

namespace Genesis02 

    /// <summary> 

    /// b 的摘要说明。 

    /// </summary> 

    public class b : System.Web.UI.Page 

    { 

        protected System.Web.UI.WebControls.TextBox TBox value

        protected System.Web.UI.WebControls.Button BtnClose; 

        private void Page_Load(object sender, System.EventArgs e) 

        { 

            if (!IsPostBack) 

            { 

                BtnClose.Attributes[" onclick"] = "closeme();return false;"; 

            } 

        } 

        #region Web Form Designer generated code 

        override protected void OnInit(EventArgs e) 

        { 

            // 

            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 

            // 

            InitializeComponent(); 

            base.OnInit(e); 

        } 

        /// <summary> 

        /// 设计器支持所需的方法 - 不要使用代码编辑器修改 

        /// 此方法的内容。 

        /// </summary> 

        private void InitializeComponent() 

        { 

            this.Load += new System.EventHandler(this.Page_Load); 

        } 

        #endregion 

    } 

####################################################################### 

c.aspx and c.asp.cs 

<%@ Page language="c#" Codebehind="c.aspx.cs" AutoEventWireup="false" 

Inherits="Genesis02.c" %> 

<HTML> 

    <HEAD> 

        <TITLE>c</TITLE> 

    </HEAD> 

    <frameset rows="0,*"> 

        <frame src=" about:blank"> 

        <frame src="b.aspx"> 

    </frameset> 

</HTML> 

____________________________________________________ 

using System; 

using System.Collections; 

using System.ComponentModel; 

using System.Data; 

using System.Drawing; 

using System.Web; 

using System.Web.SessionState; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Web.UI.HtmlControls; 

namespace Genesis02 

    /// <summary> 

    /// c 的摘要说明。 

    /// </summary> 

    public class c : System.Web.UI.Page 

    { 

        private void Page_Load(object sender, System.EventArgs e) 

        { 

            // 在此处放置用户代码以初始化页面 

        } 

        #region Web Form Designer generated code 

        override protected void OnInit(EventArgs e) 

        { 

            // 

            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 

            // 

            InitializeComponent(); 

            base.OnInit(e); 

        } 

        /// <summary> 

        /// 设计器支持所需的方法 - 不要使用代码编辑器修改 

        /// 此方法的内容。 

        /// </summary> 

        private void InitializeComponent() 

        { 

            this.Load += new System.EventHandler(this.Page_Load); 

        } 

        #endregion 

    } 

############################################################################# 

c.aspx and c.asp.cs 

<%@ Page language="c#" Codebehind="c.aspx.cs" AutoEventWireup="false" 

Inherits="Genesis02.c" %> 

<HTML> 

    <HEAD> 

        <TITLE>c</TITLE> 

    </HEAD> 

    <frameset rows="0,*"> 

        <frame src=" about:blank"> 

        <frame src="b.aspx"> 

    </frameset> 

</HTML> 

____________________________________________________ 

using System; 

using System.Collections; 

using System.ComponentModel; 

using System.Data; 

using System.Drawing; 

using System.Web; 

using System.Web.SessionState; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Web.UI.HtmlControls; 

namespace Genesis02 

    /// <summary> 

    /// c 的摘要说明。 

    /// </summary> 

    public class c : System.Web.UI.Page 

    { 

        private void Page_Load(object sender, System.EventArgs e) 

        { 

            // 在此处放置用户代码以初始化页面 

        } 

        #region Web Form Designer generated code 

        override protected void OnInit(EventArgs e) 

        { 

            // 

            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 

            // 

            InitializeComponent(); 

            base.OnInit(e); 

        } 

        /// <summary> 

        /// 设计器支持所需的方法 - 不要使用代码编辑器修改 

        /// 此方法的内容。 

        /// </summary> 

        private void InitializeComponent() 

        { 

            this.Load += new System.EventHandler(this.Page_Load); 

        } 

        #endregion 

    } 

以上是使用模态窗口的所有主要代码 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在DataGrid中创建一个弹出式Details窗口
在DataGrid中创建一个弹出式Details窗口 这篇文章来自DotNetJunkie的提议。他最初写信要求我们提供一个关于如何创建在DataGrid 中使用HyperLinkColumn的例子,可以在用户点击这一列后打开一个新窗口,显示出此列的详细内容。在此之前我们曾经通过email回答他们,他建议我们将这个方法加入他们的指南中,于是,就有了这篇文章。像我们原来的文章一样,它很简单,但是简单的包含代码的方法例可以更有效地启发开发者。 这个例子包含两个WebForms和一个css文件(所有的代码都可
阿新
2018/04/13
2.5K0
在asp.net中为Web用户控件添加属性和事件
在90年代初,Microsoft为Web程序员提供的ActiveServerPages(ASP运维
Java架构师必看
2020/10/15
2.6K0
asp.net中显示DataGrid控件列序号的几种方法
在aps.net中多数据绑定的控件很多,论功能来说,应该属DataGrid最为齐全,但它没有提供现成的显示记录序号的功能,不过我们可以通过它所带的一些参数来间接得到序号,下面来看看怎样得到和显示序号值计算方式如下:
Java架构师必看
2021/03/22
1.7K0
在DataGrid中显示图片
    DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便。除了与数据源直接绑定以外,我们还可以通过列绑定模板对 DataGrid 的列进行自定义,来按照我们设定的格式显示数据。
Java架构师必看
2021/03/22
3.8K0
框架页面尽可以这么用(后置代码中控制框架)
下面是框架页: <%@ Page CodeBehind="Frameset.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="IbatisTest.Web.Frameset" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML>     <HEAD>         <TITLE>内容框架集</TITLE>         <META HTTP-EQUIV
张善友
2018/01/22
6420
简单分页
如果需要考虑如时间的过滤、其他条件的加入,可以在SQL语句进行编辑,普通的网站,下面的数据浏览分页
Java架构师必看
2021/03/22
5170
ASP.NET弹出消息对话框的方法小结
【原理】 在页面上放置一隐藏控件,并在页面最后放上一段脚本代码,脚本代码检测隐藏控件的value是否为空,若不为空则弹出对话框显示信息,否则什么也不做。 后台代码在需要的时候修改隐藏控件的value,这样当页面传到用户那时,最后的脚本代码将执行并弹出对话框。 【注意事项】 1.         隐藏控件必须是HTML控件,否则javascript无法找到。 2.         后台代码要修改隐藏控件的值,隐藏控件自然得加上runat=”server” 标记。 3.         在弹出对话框
阳光岛主
2019/02/19
4K0
asp.net 跳转页面[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。①response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。 实例 Example that uses Redirect [C#; ASP.NET]
全栈程序员站长
2022/09/13
3.5K0
生成静态文件的新闻系统核心代码
在网上看了许多能生成静态页的新闻系统,但基于asp.net的系统极少,闲下时间来自己写了一个,发出来,大家一起研究,代码没做什么优化,只是实现了功能
Java架构师必看
2021/03/22
1.1K0
ASP.NET2.0图片格式转换【月儿原创】
主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.20
Java架构师必看
2021/03/22
1.5K0
asp实现用户注册登录代码(用Javaweb制作登录注册页面)
最近在写asp课程设计,网站登录注册的功能怎么能少,捣鼓了两天终于弄出点东西来了。
全栈程序员站长
2022/07/30
8.4K0
asp实现用户注册登录代码(用Javaweb制作登录注册页面)
比较郁闷的textbox(asp.net 2.0)控件
该文讲述了在ASP.NET 2.0中,如果设置了文本框控件(TextBox)的ReadOnly属性为true,则通过脚本修改文本框内容时,控件属性不会发生改变,而如果设置了ContentEditable属性为true,则可以通过脚本修改文本框内容,并反映到服务器端。
Jianbo
2018/01/09
1.4K0
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
https://www.bilibili.com/video/av819861860
红目香薰
2023/01/08
1.4K0
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
文本的DES加密 MD5散列值 DSA的数字签名
作者:未知文本的DES加密为了对称加密的安全,将密码进行封装,先新建一个用于保存密码的类库cl:usC#
Java架构师必看
2020/10/26
7880
ASP.NET 2.0页面框架的几处变化
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
1.5K0
asp.net中打印指定控件内容
1.写一个PrintHelper类 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; us
欢醉
2018/01/22
2.9K0
asp.net中Session小例子
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159514.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
9730
asp.net中Session小例子
asp.net(c#)网页跳转几种方法小结「建议收藏」
在asp.net下,经常需要页面的跳转,下面是具体的几种方法。跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于.net中response.redirect sever.execute server.transfer 三种页面跳转的方法
全栈程序员站长
2022/09/09
2.5K0
结合ashx来在DataGrid中显示从数据库中读出的图片
//---------------------------------------BindImage.aspx ----------------------------------------
Java架构师必看
2021/03/22
3.9K0
checkbox选中触发事件_jquery select change事件
<asp:DataGrid id=”DataGrid1″ runat=”server” AutoGenerateColumns=”False”> <Columns> <asp:BoundColumn DataField=”txtId”></asp:BoundColumn> <asp:BoundColumn DataField=”txtName”></asp:BoundColumn> <asp:TemplateColumn> <ItemTemplate> <asp:ImageButton id=”btnItem” runat=”server” CommandName=”LookDetail”></asp:ImageButton> <asp:DropDownList id=”ddl” runat=”server” AutoPostBack=”True”> <asp:ListItem Value=”asdf”>asdf</asp:ListItem> <asp:ListItem Value=”asdfasdf”>asdfasdf</asp:ListItem> <asp:ListItem Value=”wrwwewewee”>wrwwewewee</asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid>
全栈程序员站长
2022/10/01
4.4K0
相关推荐
在DataGrid中创建一个弹出式Details窗口
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档