十、      关于JavaScript
-1、 使用热键

<body οnkeydοwn="if(event.keyCode==13)query_data()">

0、  调用JS弹出对话框

Page.Response.Write("<script language=javascript>alert('密码错误!');window.history.back(-1);</script>");

Page.Response.End();

1、  调用JS程序要把"()"加上,例如:checkinput()

2、  在HTML中调用JS的代码片如下:

<script language="javascript">

function closeWnd()

{

window.close();

}

</script>

<input type="button" value='关闭' οnclick='closeWnd()'>

3、  关于Document对象的使用:如果你的窗体(名称是Form1)中有一个控件(名称是Keyword)那么,引用方法为:                        Document.form1.Keyword.value

4、  相关示例见test_js.sln项目

5、  使用状态条:

<a href="tpage.htm" onMouseOver="window.status='Just another stupid link...'; return true">

input type="button" name="look" value="?" οnclick="statbar('这是状态条喔

(statusbar) !');">

<input type="button" name="erase" value="d)" οnclick="statbar('');">

6、使用日期的例子:

<script language="LiveScript">

<!-- Hiding

today = new Date()

document.write("?( ??/ ",today.getHours(),":",today.getMinutes())

document.write("<br>?) ?- : ", today.getMonth()+1,"/",today.getDate(),"/",today.getYear());

// end hiding contents -->

</script>

7、产生随机数

<script language="LiveScript">

function RandomNumber() {

today = new Date();

num = Math.abs(Math.sin(today.getTime()));

return num;

}

</script>

8、打开一个新窗口:

<SCRIPT LANGUAGE="javascript">

  <!--

         window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行

  -->

</SCRIPT>

  参数解释:
<SCRIPT LANGUAGE="javascript"> js脚本开始;

  window.open 弹出新窗口的命令;

  'page.html' 弹出窗口的文件名;

  'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;

  height=100 窗口高度;

  width=400 窗口宽度;

  top=0 窗口距离屏幕上方的象素值;

  left=0 窗口距离屏幕左侧的象素值;

  toolbar=no 是否显示工具栏,yes为显示;

  menubar,scrollbars 表示菜单栏和滚动栏。

  resizable=no 是否允许改变窗口大小,yes为允许;

  location=no 是否显示地址栏,yes为允许;

  status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;

</SCRIPT> js脚本结束

9、自动关闭窗口

<script language="JavaScript">

                function closeit()

                {

                       setTimeout("self.close()",10000) //毫秒

                }

         </script>

10、打开窗口之Cookies

回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定 没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-(

  有解决的办法吗?Yes!  Follow me.我们使用cookie来控制一下就可以了。

  首先,将如下代码加入主页面HTML的<HEAD>区:

  <script>

  function openwin(){

  window.open("page.html","","width=200,height=200")

  }

  function get_cookie(Name)

{

  var search = Name + "="

  var returnvalue = "";

  if (document.cookie.length > 0)

{

                offset = document.cookie.indexOf(search)

                if (offset != -1)

{

                       offset += search.length

                       end = document.cookie.indexOf(";", offset);

                       if (end == -1)

                       end = document.cookie.length;

                       returnvalue=unescape(document.cookie.substring(offset, end))

                }

         }

  return returnvalue;

  }  

  function loadpopup()

{

         if (get_cookie('popped')=='')

{

                openwin()

                document.cookie="popped=yes"

         }

  }

  </script>

  然后,用<body οnlοad="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进 入该页面,窗口再也不会弹出了。真正的Pop-Only-Once!

  写到这里弹出窗口的制作和应用技巧基本上算是完成了!

11、前进后退和定位

<html>

<body>

<FORM NAME="buttonbar">

<INPUT TYPE="button" VALUE="Back" onClick="history.back()">

<INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.html'">

<INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">

</FORM>

</body>

</html>

12、Cookies全部搞定

<script language="JavaScript">

<!--

var bVisitedToday = false;

var lastVisit = GetCookie("lastVisit");

if (lastVisit != null)

{

lastVisit = 1 * lastVisit;

var lastHere = new Date(lastVisit);

var rightNow = new Date();

if(lastHere.getYear() == rightNow.getYear()

&& lastHere.getMonth() == rightNow.getMonth()

&& lastHere.getDate() == rightNow.getDate())

{

bVisitedToday = true;

}

}

if(bVisitedToday == false)

{

setLastlastVisitCookie();

window.location="http://www.thehungersite.com/"

}

else

{

//window.location="about:blank"

}

function getCookieVal (offset)

{

var endstr = document.cookie.indexOf (";", offset);

if (endstr == -1)

endstr = document.cookie.length;

return unescape(document.cookie.substring(offset, endstr));

}

function GetCookie (name)

{

var arg = name + "=";

var alen = arg.length;

var clen = document.cookie.length;

var i = 0;

while (i < clen) {

var j = i + alen;

if (document.cookie.substring(i, j) == arg)

return getCookieVal (j);

i = document.cookie.indexOf(" ", i) + 1;

if (i == 0) break;

}

return null;

}

function SetCookie (name, value)

{

var argv = SetCookie.arguments;

var argc = SetCookie.arguments.length;

var expires = (argc > 2) ? argv[2] : null;

var path = (argc > 3) ? argv[3] : null;

var domain = (argc > 4) ? argv[4] : null;

var secure = (argc > 5) ? argv[5] : false;

document.cookie = name + "=" + escape (value) +

((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +

((path == null) ? "" : ("; path=" + path)) +

((domain == null) ? "" : ("; domain=" + domain)) +

((secure == true) ? "; secure" : "");

}

function setLastlastVisitCookie ()

{

var rightNow = new Date();

var expdate = new Date();

expdate.setTime (expdate.getTime() + 1 * (24 * 60 * 60 * 1000)); //+1 day

SetCookie ("lastVisit", rightNow.getTime(), expdate, "/");

}

function ResetCookie()

{

SetCookie("lastVisit", 0, null, "/");

}

// -->

</script>

十一、         Asp.net 中 页面无刷新的做法
asp中为了实现无刷新,常常会将数据提交到隐藏框架中,在asp.net中

有一个很简单的设置就可以实现

void Page_Load(Object sender, EventArgs e)

{

this.SmartNavigation = true;

}

或者直接写在

<%@ Page language="c#" Codebehind="AllBook.aspx.cs"  SmartNavigation = true  AutoEventWireup="false" Inherits="wx.AllBook" %>

十二、         关于Asp的性能优化
前一段时间,因为工作需要,对一旧系统进行了性能优化。

环境描述如下:

1.该系统为以信息为主要内容。采用asp实现表现层,数据库采用MS SqlServer 2000 .

2.asp代码混乱,并伴有许多错误,由于错误被屏蔽了,所以,系统才勉强可以使用。

3.所有的数据访问直接通过在asp程序中编写混合代码实现,并在同一文件中重复访问同一张表。

针对以上情况,经过分析,确定一下原则,

1。将数据库的处理和访问逻辑全部写到存储过程中。

2。asp只做显示输出的部分。

3。将原有的bug修正。

4。建立索引,并更改数据访问的sql,注意要点有

1)Where 的条件需要将索引字段的条件置前。

2)不允许出现count(*) ,以count(field1)取代。

3)不允许出现 select * 以select field1,field2 ...等代替

4)尽量不用IN ,采用exits替代

5) 对于单条的Insert Update和delete ,不采用事务,采用事务锁定表,影响并发的效率,某些特殊情况还需要进行

强制不锁表

with(nolock)

十三、         关于传值(隐藏代码方式)
1、在第一个页的HTML中,确认Inherits属性添加到@Page指令:

<%@ Page language="c#" Inherits="test_js.page1" %>

2、在第一个页中建立一个Public的属性

public string getName

{

get

{

return txtNumber.Text ;

}

}

3、添加传送指令如下:

Server.Transfer ("edit.aspx");

4、第二个页面HTML设置如下:

<%@ Reference Page="page1.aspx" %>

5、声明第一个的变量

public page1 fp1;

6、引用方法

if (!this.IsPostBack )

{

fp1=(page1)Context.Handler ;

txtRc.Text =fp1.getName;

}

//this.IsPostBack方法用于测试页面是否是回传

7、完成!

十四、         Application的事件
<script language="C#" runat="server">

void Application_OnBeginRequest(Object sender, EventArgs E)

{

}
    void Application_OnEndRequest(Object sender, EventArgs E)

{
    }

</script>

十五、         Session的事件
void Session_OnStart()

{

Session["username"]="";//初始化参数

}

void Session_OnEnd()

{

}

十六、         在本窗口打开页面
       onclick ="window.open('?addnew=true','_self','')"

十七、         关于DropDownList的数据绑定
                     drp_Tech.DataSource =ds.Tables["职员表"].DefaultView ;

drp_Tech.DataTextField ="技术员";

drp_Tech.DataBind ();

十八、         Table的使用
       1、可以用width=100%来使Table填充窗体的宽度

2、可以用<td colspan="3" align="center">&nbsp;</td>来合并列,合并行用rowspan,Span的意思是跨度

十九、         DropDownList设置Item被选的方法
       DropDownList2.Items.FindByText ("2").Selected =true;

二十、         在HTML中去掉多的边框(整体)
       leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"

二十一、            用Java下载
              <script language="javascript">

var strDownloadUrl = "http://g.china.msn.com/7MEZH_CN/ZH-CHS/SETUPDL.EXE";

function LaunchDownload(){location.href=strDownloadUrl;}

</script>

二十二、            滚动字的做法:
       <marquee scrolldelay="180">欢迎登录海天客户关系管理系统!</marquee>

二十三、            层
       在Login.aspx中可以使用层来解决位置的问题

<div id="Layer1"style="BORDER-RIGHT: #000000 0px; BORDER-TOP: #000000 0px; LEFT: 28%; OVERFLOW: hidden; BORDER-LEFT: #000000 0px; WIDTH: 432px; BORDER-BOTTOM: #000000 0px; POSITION: absolute; TOP: 24%; HEIGHT: 282px; visibility: visible;"></div>

二十四、            关于XML
                     DataSet dsXml =new DataSet ("Settings");

string filepath=Server.MapPath ("\\xml\\set.xml");

dsXml.ReadXml(filepath);

DataGrid1.DataSource =dsXml;

Response.Write ("<br><br><br>第一个连接为:" + dsXml.Tables ["Set"].Rows[0]["ConnectionString1"].ToString ());

DataGrid1.DataMember ="Set";

DataGrid1.DataBind ();

二十五、            处理传入的参数
       http://mov.hzgwbn.com/movie.asp?addnew=true

在void Form_Load()中加入:

string _addnew=Request.QueryString ["addnew"];

二十六、            关于__dopostback()
看看这个吧,可能有用!!

<SCRIPT language="JavaScript">

<!-- Hide from older browsers

function GetInput()

{

input = prompt('input value that your want to send server:','');

if ((input) && (input!=""))

{

document.forms['Form1'].elements['Hidden1'].value = input;

__doPostBack('Button1', '');

}

}

// Stop hiding -->

</SCRIPT>

其中使用了__DoPostBack这个系统的客户端函数,用来激发服务器事件。

2、为了完成这个完整的页面我们需要一个如下的Form

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

<INPUT id="Hidden1" type="hidden" name="Hidden1" runat="server">

<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>

<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

</form>

请注意里面的细节,这些都是运行在服务器上的(runat=server)

3、接着就是服务器端的代码(cs文件里面的),Page_load函数使得服务器控件Button1可以在呈现到客户端的时候具有onclick事件代码如下:

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

{

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

this.Button1.Attributes.Add("onclick","GetInput();");

}

4、最后就是按钮的事件了,代码如下,它将取到用户输入的一个值并且将这个值显示在TextBox里面,代码如下:

private void Button1_Click(object sender, System.EventArgs e) {

string str = this.Hidden1.Value;

this.TextBox1.Text = str;

}

5、我自己的示例

οnclick="javascript:if(!confirm('ok')){return};__doPostBack('Button3','');"

6、注意:页面上一定要有LinkButton或是别的可以有__doPostBack的控件

二十七、            Toolbar
1、用Javascript处理

<script language="javascript">

function WitchB()

{if (event.srcNode!= null)

{

var bt=event.srcNode.getAttribute("id");

switch (bt)

{

case "C1":

aa();

break;

case "C2":

这里调用.aspx.cs中的过程,这句话该怎么写,用__dopostback()????

break;

}

}

}

function aa()

{...}

</script>

<body οnlοad="Toolbar1.onbuttοnclick=WitchB;" MS_POSITIONING="GridLayout">

2、在C#中处理

private void Toolbar1_ButtonClick(object sender, EventArgs e)

{

Response.Write (sender.ToString ());

TextBox1.Text =sender.ToString ();

if(sender.ToString ()=="ToolbarButton - button1")

{

Response.Redirect ("http://localhost/htcrm");

}

}

转载于:https://www.cnblogs.com/BoKeRen/archive/2006/03/01/340295.html

ASP.NET学习笔记 2相关推荐

  1. ASP.Net学习笔记015--ASP.Net中使用Cookie

    ASP.Net学习笔记015--ASP.Net中使用Cookie 表单数据欺骗: 原理跟收到欺骗短信一样,移动信号塔[基站],伪装的移动信号塔会屏蔽移动信号,并且 在信号范围内的手机会自动切换为接收伪 ...

  2. ASP.Net学习笔记014--ViewState初探3

    ASP.Net学习笔记014--ViewState初探3 为什么禁用了viewstate,还能修改label2的值 因为:viewstate只是记录label2的值,并不影响给label2进行设置 - ...

  3. ASP.Net学习笔记013--ViewState初探2

    ASP.Net学习笔记013--ViewState初探2 上课讲的viewstate,由于需要跟后台服务器进行传值,需要封装很多隐藏列,比如100条数据,就会有100个viewstate 如果用在一些 ...

  4. ASP.Net学习笔记008--ASP.Net揭秘之Input版自增补充说明

    以前写的课程都没有附上源码,很抱歉! ASP.Net学习笔记007ASP.Net Input版自增.zip http://credream.7958.com/down_20155694.html 1. ...

  5. ASP.Net学习笔记007--ASP.Net Input版自增

    2016/1/18 以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ...

  6. ASP.Net学习笔记006--Get和Post的区别

    以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ASP.Net学习 ...

  7. ASP.Net学习笔记005--ASP.Net的IsPostBack揭秘

    以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ASP.Net学习 ...

  8. ASP.Net学习笔记004--基于ashx方式的ASP.Net开发1

    以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ASP.Net学习 ...

  9. ASP.Net学习笔记003--网站和WebApplication的区别

    以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ASP.Net学习 ...

  10. ASP.Net学习笔记002--ASP.Net服务端控件做了什么2

    ASP.Net学习笔记002--ASP.Net服务端控件做了什么2 以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交 ...

最新文章

  1. php用中文分割字符串,利用php怎么对中文字符串进行分割
  2. java之上三角矩阵_7-1 判断上三角矩阵
  3. linux字符雨,linux周记
  4. python idle使用anaconda中库怎么用_如何使用Anaconda学习Python
  5. 修复远程过程调用 (RPC) 时发生的各种问题KB908521
  6. Attension Mechanism模型的详细介绍,原理、分类及应用
  7. 笨方法使用Kubernetes实现持续交付
  8. AMD上线Linux专版驱动17.10:支持最新API接口
  9. ARM编译中的RO、RW和ZI DATA区段[转]
  10. 网络拓扑图自动生成_SAP ABAP关键字语法图和ABAP代码自动生成工具Code Composer
  11. vue组件化开发学习笔记-3-组件插槽
  12. JAVA:基本运算符及应用:这是一个闰年吗?
  13. 一文理解二元logistic回归
  14. airpods pro是按压还是触摸_使用AirPods Pro一个月后,我是这么看待它的
  15. 大二综合项目:数据库Mysql,Navicat
  16. 系列文章深度解读|SwiftUI 背后那些事儿
  17. 计算机与科学专硕考研院校排名,22考研|全国首次专硕院校评估排名,看看有你想报的没...
  18. tirm php,PHP中trim 会导致乱码的原因
  19. OpenSuse常用命令操作笔记
  20. 判断单双周java_Java实现LeetCode第31场双周赛(题号5456-5459)

热门文章

  1. robotframework笔记5
  2. 【暑假训练 7.10】 codevs 2492 上帝造题的七分钟2
  3. 兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例[转]
  4. [Silverlight]奇技银巧系列-5 捕获路由事件
  5. 终于等到DUDU把MetaBlog Api打开了
  6. 用ASP创建MDaemon用户
  7. MySQL修改字符集步骤(字段插入中文提示错误时解决办法)
  8. c#中WepAPI(post/get)控制器方法创建和httpclient调用webAPI实例
  9. MFC对话框中处理Enter或Esc按键事件方法
  10. 怎么用odbc连接mysql数据库连接_PowerDesigner通过ODBC来实现Mysql数据库的连接操作...