当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .Net基础:ASP.NET中的javascript操作

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

.Net基础:ASP.NET中的javascript操作


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 100 ::
收藏到网摘: n/a

下面总结一些常见的ASP.NET中的javascript操作:

1.为button控件添加确认功能

要想为服务器控件添加客户端的事件,需要用到Attributes属性。Attributes属性是所有的服务器控件都有的一个属性,它用来为最终生成的HTML添加自定义的一些标记。假设Web Form上有一个保存按钮btnSave,希望在用户点此按钮时提示用户是否确实要保存(比如一旦保存就无法恢复等),则应在Page_Load事件中添加如下代码:

btnSave.Attributes.Add(

“onclick”,“javascript:return confirm(

‘Are you sure to save?’);\

”)


要注意的是‘return’,这是不可省的,否则即使用户点了取消,数据仍然会保存。


2.为Datagrid中的每一行添加Javascript事件


Datagrid中的子控件是没办法直接访问的,要实现上面的那种效果,我们需要用到Datagrid的OnItemDataBound事件。OnItemDataBound事件发生在Datagrid的每一行数据绑定到Datagrid之后(即一行激发一次)。首先在Datagrid的声明中添加OnItemDataBound属性,如下:


此处说明OnItemDataBound事件发生时调用ItemDataBound方法,在代码后置文件中添加此方法的定义:


private void OnItemDataBound(

object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {

if(e.Item.ItemType != ListItemType.Header &&

e.Item.ItemType != ListItemType.Footer ) {

LinkButton btnSave = (LinkButton)e.Item.Cells[2].Controls[0];

string strClientID = btnSave.ClientID;

//得到该控件的客户端ID,可供JavaScript调用

btnSave.Attributes.Add("onclick","javascript:return confirm

('Are you sure to save?');

");

}

}


由于Datagrid的标题行和脚注行也会激发此事件,所以首先判断激发此事件的行不是标题行和脚注行。这里假设btnSave按钮位于Datagrid的第3列(第一列是0)。


3.在Javascript中触发服务器端控件事件


让我们再来考虑第一个实例,我们为保存按钮增加了确认功能,只有在用户确认后才会执行保存操作,用户不确认的话就不执行,如果我们想要用户按下“取消”时,执行另外的操作怎么办呢?这就要需要用JS来回调(PostBack)服务器端控件完成操作。


当前页面中有一个DropDownList控件ddlTest,Button按钮btnSave.当选择ddlTest时触发onchange事件,保存当前的选择值,在保存前会让操作者先确认,用户确认则保存,否则转向default.aspx页。


在Page_Load事件中添加如下代码:


string strCMD = Page.GetPostBackClientHyperlink( btnSave, "" );

string script = @"javascript:ConfirmUpdate(""EVAL_MESSAGE"");";

script = script.Replace( "EVAL_MESSAGE" , strCMD );

ddlTest.Attributes.Add("onchange",script);


这段代码执行后生成的select控件将是这样:


〈select name="ddlTest" id="ddlTest"

onchange="javascript:ConfirmUpdate("javascript:__doPostBack('btnSave',')");

" 〉


ConfirmUpdate函数如下

〈SCRIPT language=javascript〉

function ConfirmUpdate(cmd){

if(confirm("Are you sure to update?")) {

eval(cmd);

}

else {

window.location.href="default.aspx"

}

}

〈/SCRIPT〉


这里利用了Javascript eval函数来调用一个字符串中包含的命令。需注意的是包含命令的字符串不能用单引号括起来,因为自动生成的脚本中包括单引号,

 


所以这里用两个双引号表示字符串本身的双引号。


下面是一些简单的ASP.NET中的javascript操作:


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'


conte

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


//这个我不知道用javascript怎么实现,熟悉的轻补充一下
以上就是常用的ASP.NET中的javascript操作。