控制Asp.net的Button控件的提交动作
asp.net开发中,通常需要做一些客户端验证。当我们默认在一个页面中加个button控件时,这个Button被asp.net 输出为一个Submit按钮。 asp:Button ID=Button1 runat=server Text=Button on click=Button1_Click /
在_doPostBack方法内,通过theForm.submit()来使数据提交到服务器。
这样很容易看出,如 果我们想要在数据提交到服务器端前做些验证的事情,就要首先在_doPostBack之前做些处理,并使数据验证只有达到了要求 后,才可以调用_doPostBack使数据回传。我们首先给Button加一个 OnClientClick属性,给OnClientClick 属性指定一个JS方法Test():
<asp:Button ID="Button1" OnClientClick="test();" UseSubmitBehavior="false" runat="server" Text="Button" onclick="Button1_Click" />
JS代码如下:
1: function test()
2: {
3: alert("test");
4: return false ;
5: }
再看一下经过服务端解析后输出的控件HTML代码:
<input type="button" name="Button1" value="Button" onclick="test();__doPostBack('Button1','')" id="Button1" />
我们看到test方法执行是在_doPostBack之前,当我们点按钮时, 页面会弹出 test 警告,但是仍然会继续提交数据到服务器。如果不想提交数据到服务器,就要想办法阻止_doPostBack执行。到了这一步,解决办法就很明白了,我们只 需要把onclick变成 test();return;_dopostBack('Button1','')就可以了。如果需要test()方法的判断结果才决定是否提交数据到服 务器,我们需要这样改动 if(!test())return;_dopostBack('Button1','')。
打开aspx源 代码,把OnClientClick改成OnClientClick= "if(!test())return; "我们再看一下HTML的输出:
<input type="button" name="Button1" value="Button" onclick="if(!test())return;__doPostBack('Button1','')" id="Button1" />
运行测试,满足要求。
这只是一种解决办法,还有就是重写 Button,自己控制onclick的输出或者利用验证控件。
还有如下方式也可解决:
---------------------------------------------------------------------------------------------------------------
一个页面,有一个文本框和一个提交按钮,同时有一个验证控件来验证文本框中的输入,单击BUTTON时同时要触发一个javascript 脚本。
在PageLoad中加入:Button1.Attribute.Add("onclick","return CheckOther()");
运行时提示发生脚本错
相关文档:
ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件、Application_Error 事件以及应用程序配置文件 (Web.config)。
如果您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错误,则将根据 Web.config 文件的 <customErrors> 部分中的设置处理错误。在 <cus ......
首先申明 纯属个人练习之作 请勿用于商业目的..........无语
纪念一下我以前的一个作品<窥>,以后就用它当我的LOGO了
今天是首发,这篇文章我会持续更新,我参照了园区里前辈的经验,摸索着去实现,目前大体的还未完善,先发张图上来...
......
/// <summary>
/// 过滤标记
/// </summary>
/// <param name="NoHTML">包括HTML,脚本,数据库关键字,特殊字符的源码 </param>
/// <returns>已经去除标记后的文字</returns>
&nbs ......
我试着去使用asp.net mvc模板去创建一个blog发布系统。当然,网上有很多open source的你可以使用,特别是很多php写的模板。
这里只是去试着学习使用asp.net mvc模板去创建一个blog发布系统,我自己用。大部分的blog都会有如下一些部分组成:
这里还会使用Common Library .net 这个open source的project。你可以到 ......
ASP.NET(C#)返回上一页(后退)代码
2008-08-10 10:32
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["BackUrl"] = Request.UrlReferrer.ToString();
}
}
/// <s ......