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

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 73 ::
收藏到网摘: 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操作。