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

ASP.NET
asp.net GridView控件中模板列CheckBox全选、反选、取消
asp.net GridView 删除时弹出确认对话框(包括内容提示)
asp.net DropDownList 三级联动下拉菜单实现代码
asp DataTable添加列和行的三种方法
Asp.net 页面调用javascript变量的值
asp.net 长文章通过设定的行数分页
asp.net 定时间点执行任务的简易解决办法
asp.net 页面延时五秒,跳转到另外的页面
asp.net 动态输出透明gif图片
asp.net DataList与Repeater用法区别
asp.net Javascript获取CheckBoxList的value
asp.net程序在调式和发布之间图片路径问题的解决方法
asp.net下生成英文字符数字验证码的代码
asp.net 页面版文本框智能提示JSCode (升级版)
ASP.NET URL伪静态重写实现方法
ASP.NET 2.0 中Forms安全认证
asp.net 动态添加多个用户控件
asp.net Repeater显示父子表数据,无闪烁
asp.net 无法获取的内部内容,因为该内容不是文本 的解决方法
asp.net GridView排序简单实现

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


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