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

ASP.NET
Asp.net 时间操作基类(支持短日期,长日期,时间差)
asp.net 获取机器硬件信息(cpu频率、磁盘可用空间、内存容量等)
asp.net 数据库备份还原(sqlserver+access)
Asp.Net 数据操作类(附通用数据基类)
Asp.net 弹出对话框基类(输出alet警告框)
Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
Asp.net Socket客户端(远程发送和接收数据)
Asp.net 字符串操作基类(安全,替换,分解等)
Asp.Net数据输出到EXCEL表格中
asp.net Gridview里添加汇总行
asp.net UpdatePanel的简单用法
asp.net ajaxControlToolkit FilteredTextBoxExtender的简单用法
this connector is disabled错误的解决方法
sql事务应用积累
asp.net Page.Controls对象(找到所有服务器控件)
在asp.NET中字符串替换的五种方法
ASP.NET缓存方法分析和实践示例代码
asp.net 在DNN模块开发中遇到的resx怪问题
ASP.NET State service状态服务的问题解决方法
asp.net 结合mysql存储过程进行分页代码

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


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