话说曾在校时,前端的第一门课程HTML静态网页设计,其老师,真是应了他的名字: 路遥知马力。 整个学期硬是全部在 Dreamwear 中进行拖拽控件来教学,未曾教授一句代码。成功忽悠了全体学生,课上一本正经的胡说八道,对拖拽控件的心得侃侃而谈,想想也是讽刺,同期的学生都是纯手写编辑界面,我们却依旧沉浸在设计下的拖拽操作中,带来的就是界面看起来还像回事,只是源码惨不忍睹,后来有幸在网上观看了燕十八老师的HTML系列视频,犹如冬服参汤,醍醐灌顶。使我终没有在拖拽的路上越走越远。

1.前台界面互调传值,就是子界面与父界面之间的那些事

①父界面传值到子界面  在子界面中使用opener方法来说获取父界面元素

    <script type="text/javascript">
function getfather() {
var a = window.opener.document.getElementById("txt1").value;
var b = window.opener.document.getElementById("txt2").value;
console.log(a);
console.log(b);
} </script>

如上图所示,txt1、txt2 为父界面中两个textbox 的 ID 属性值,这样就可以直接接受值,纯前台界面之间的操作

②子界面传值到父界面,同样可以在子界面中用 opener 来解决,同上,只是给等号右边的表达式赋值而已。当然,方法有很多种,解决问题时只需要一种,对于初学者,其他的方法了解就可,需要先是广度,深度的事情,研究起来内容很多,需要下大量的功夫,时间也是等倍计算。当然我这里不是误导,时时刻刻积累,每天睡前想想 又 get 到哪些新技能。

本着技术不够,数量来凑的思想来说说Web from 中前后台的控件的情况

2. 函数执行顺序,对于一般按钮而言,可以设置 OnClick、OnClientClick、OnCommand事件,执行顺序如下:

①OnClientClick  调用JS中设置的方法

②OnClick 按钮单击事件,在OnClientClick 事件之后执行

③OnCommand 在OnClick 事件执行,一般是结合CommandName 属性一起使用,当界面上有多数按钮时,可以进行标记

3. 前台方法中设置判断,是否执行 OnClick 事件

 <script type="text/javascript">
function Todu() {
var txtbd = document.getElementById("txtbd").value;
if(parseInt(txtbd)!=) {
alert("回答錯誤,無法進行進入後台");
return false; //添加此處
}
else {
alert("我將要執行後台方法");
}
}
</script>

默认情况下,OnClientClick  事件执行完,是要执行 OnClick 事件的,在前台做判断时, 需要设置两个地方,其一是在方法中添加,如上图注释处,其二如下图,在OnClientClick  事件中加入 return false();

<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lab" runat="server"></asp:Label>
<br />
<asp:TextBox ID="txtbd" runat="server"></asp:TextBox>
<asp:Button ID="btn_to" runat="server" Text="ToBaidu" OnClick="btn_to_Click" OnClientClick="Todu(); return false();"/>
</div>
</form>
</body>

4.后台调用前台方法

① 在Page_load 里面给某个按钮绑定前台方法 (注:和前端调用略有不同,false 后面没有括号)

       protected void Page_Load(object sender, EventArgs e)
{
btn_to.Attributes.Add("onclick", "javascript:return Todu(); return false;");
}

② 在某个按钮事件或方法中 绑定前台方法

        protected void btn_id_Click(object sender, EventArgs e)
{
//在前台腳本裡面增加一個script: window.open('B.aspx');
this.ClientScript.RegisterStartupScript(this.GetType(), "", "window.open('B.aspx')", true);
//在前台腳本裡面增加一個script: icc(); 注:沒有true
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>icc();</script>");
//在前台腳本裡面增加一份script: alert("123"); 注:单/双引号
Response.Write("<script type='text/javascript'>alert('123');</script> "); }

5. 前台调用后台方法

        public int After()
{
return ;
} public int After2(int a, int b)
{
return a + b; }

比如后台有以上两个方法,一个带参数,一个不带参数,那么在前台的方法中,若调用后台方法,如下:

     function iafter() {
var b = "<%=After()%>";
alert(b);
} function iafter2()
{
var b = "<%=After2(5,8)%>";
alter(b);
}

以上这些都是很浅显的点,不管怎样,也是记录我这个小白路上的一个脚印,权当作学习笔记。

----------------------------------市人皆大笑,举手揶揄之

JavaScript界面传值与前后台互调的更多相关文章

  1. silverlight 中javascript 代码与托管代码的互调用 以及一些思考

    silverlight 客户端javascript 代码与托管代码的互调用时比较用意义的同时,因为silverlight本身就是一个插件,如果两者之间不能进行相互的调用,对于web 上的一些特殊的功能 ...

  2. 属性传值,协议传值,block传值,单例传值四种界面传值方式

    一.属性传值 对于属性传值而言,相对于其它的三种 方法来说,是最基础,最简单的一种 方法,但,属性传值 有很大的局限性,因为是适用于第一个界面向第二个界面传 值,第二个向第三个界面传值等等.N界面向N ...

  3. 新手介绍简单一下iOS开发中几种界面传值

    首先在处理iOS-UI中,也许在很多地方需要用到两种甚至多种不同界面之间的传值,相比这也是很多iOS入门成员头疼问题,同样作为新手的我在接触这类传值时候也一脸懵然,经过一段时间的研究,对于简单的传值有 ...

  4. JavaScript URL传值过程中遇到的问题及知识点总结

    JavaScript URL传值过程中遇到的问题及知识点总结 Web系统开发过程中经常用到URL进行传值,刚刚接触时不太会解析,会出现中文乱码问题等. 1.父子页面之间的传值(在一个页面中以加载ifr ...

  5. iOS-跨界面传值和跨应用传值

    跨界面传值 从一个界面将一个结果值传到另一个界面,这个是我们在开发过程中非常常见的一个问题.传值本身并不是一个太复杂的问题,在此主要简述一下常用的传值方法. 我们传值常用的方法主要有四种: 1.属性传 ...

  6. iOS UI08_TableView界面传值

    实现两个界面之间内容的传递 // // MainViewController.m // UI08_TableView界面传值 // // Created by dllo on 15/8/7. // C ...

  7. iOS开发 — (UINaVigationController)导航控制器,界面传值

    UINavigationController 继承于 UIViewController , 以栈的方式管理所 控制的视图控制器 . 至少要有一个被管理的视图控制器 ,这个控制器我们称作导航控制器的根视 ...

  8. 讲清楚之 javascript 参数传值

    讲清楚之 javascript 参数传值 参数传值是指函数调用时,给函数传递配置或运行参数的行为,包括通过call.apply 进行传值. 在实际开发中,我们总结javascript参数传值分为基本数 ...

  9. 静态界面传值javascript

    一:JavaScript静态页面值传递之URL篇能过URL进行传值.把要传递的信息接在URL上.Post.htm 复制代码代码如下: <input type="text" n ...

随机推荐

  1. 浏览器版本不支持页面示例 supper.html

    关键点在于<html>标签和js.<!--[if lt IE 10]>的配合 使用360浏览器兼容模式下查看:http://runjs.cn/code <!DOCTYPE ...

  2. JAVA实现复制文件夹

    package com.filetest; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  3. linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权 ...

  4. 【emWin】例程八:绘制位图

    实验指导书及代码包下载: 链接:http://pan.baidu.com/s/1bpeMYpp 密码:wgtp 实验现象:

  5. PHP 生成PDF

    一个项目中需要用到网页生成PDF,就是将整个网页生成一个PDF文件, 以前也用过HTML2PDF,只能生成一些简单的HTML代码,复杂的HTML + css 生成的效果惨不忍睹, 百度了一下,发现有个 ...

  6. Vim,极简使用教程,让你瞬间脱离键鼠切换的痛苦

    注:看大家对Vim仇恨极大,其实它只是一种文本操作方式,可以减少键鼠的切换,从而让编辑文本的操作更迅捷.并不等同于IDE,在我看来,它们是两个是包含关系,IDE可以有Vim编辑模式.Vim或许可以通过 ...

  7. sublime sublimeCodeIntel插件 配置

    安装完成后, 弹出一个说明 页面, 不用 管 .可到了这里就是没有提示信息, 忽略 配置sublimeCodeIntel的config文件,告诉他我们需要javascript的提示. 法一: 通过su ...

  8. 关于checkbox的一些问题(全选,反选,以及取值)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. C#实现对远程服务器的内存和CPU监控

    C#实现对远程服务器的内存和CPU监控小记 1.  主要使用到的组件有System.Management.dll 2.  主要类为 :ManagementScope 连接远程服务器示例代码: priv ...

  10. 16C554(8250)驱动分析

    参考: http://www.cnblogs.com/zym0805/p/4815041.html 一. 硬件数据手册 The ST16C554D is a universal asynchronou ...