<asp:Button ID="Button_Select" runat="server" OnClientClick="OnOk()" Text="Select" OnClick="Button_Select_Click" />
<script type="text/javascript">
var i=0;
function OnOk()
{
document.getElementById("Label1").innerHTML = i;
i++;
var stop1 = setTimeout("OnOk()",100);
if (i==100)
{
clearTimeout(stop1);
i=0;
var modalPopupBehavior = $find('programmaticModalPopupBehavior');
modalPopupBehavior.hide();
}
}
</script>protected void Button_Select_Click(object sender, EventArgs e)
{
Bll.Book book = new Bll.Book();
DataSet ds = book.GetList();
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}在执行了OnOk()以后就不会执行Button_Select_Click事件了.在网上找了说是return fales的问题.不过我还是不懂.求教.!
<script type="text/javascript">
var i=0;
function OnOk()
{
document.getElementById("Label1").innerHTML = i;
i++;
var stop1 = setTimeout("OnOk()",100);
if (i==100)
{
clearTimeout(stop1);
i=0;
var modalPopupBehavior = $find('programmaticModalPopupBehavior');
modalPopupBehavior.hide();
}
}
</script>protected void Button_Select_Click(object sender, EventArgs e)
{
Bll.Book book = new Bll.Book();
DataSet ds = book.GetList();
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}在执行了OnOk()以后就不会执行Button_Select_Click事件了.在网上找了说是return fales的问题.不过我还是不懂.求教.!
检查一下OnOk的代码有没有出错的可能,实在不行就一行一行注掉,看看哪行有问题。
<script type="text/javascript">
function check()
{
if(document.getElementById("<%= txtXM.ClientID%>").value.length==0)
{
alert('姓名不能为空!');
document.getElementById("<%= txtXM.ClientID%>").focus();
return false;
}
}
</script> <asp:Button ID="btn" runat="server" Text="确定" OnClientClick="return check();" OnClick="Click" />
var i=0;
function OnOk()
{
document.getElementById("Label1").innerHTML = i;
i++;
var stop1 = setTimeout("OnOk()",100);
if (i==100)
{
clearTimeout(stop1);
i=0;
var modalPopupBehavior = $find('programmaticModalPopupBehavior');
modalPopupBehavior.hide();
}
}
</script>这段js 有错吗.?
就要加上ture或者false,即一定要加上return,否则OnClick失效。
当返回false时OnClick服务器端事件才被中止,当你的js验证有错误,也会跳过验证,直接执行服务器端事件OnClientClick。
var i=0;
function OnOk()
{
document.getElementById("Label1").innerHTML = i;
i++;
var stop1 = setTimeout("OnOk()",100);
if (i==100)
{
clearTimeout(stop1);
i=0;
var modalPopupBehavior = $find('programmaticModalPopupBehavior');
modalPopupBehavior.hide();
return true;
}
}
这样还是不执行onclikc事件.!
我是想点击按钮时弹出层.10秒后层消失.同时绑定GridView.!
OnClientClick在MSDN中的定义,在引发某个 Button 控件的 Click 事件时所执行的客户端脚本。
注意用词,说的是如果你要使用OnClientClick来提交验证,可以不加return,这样就无法返回,从而来提交验证。
另外:setTimeout中1秒是1000。
OnClientClick="OnOk();return true"
function OnOk()
{
return true;
}
<head runat="server">
<title>無題のページ</title>
<script language="javascript" type="text/javascript">
function test() {
alert("1");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick = "test();" OnClick="Button1_Click" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div>
</form>
</body>
</html>大家可以自己试验一下就知道了,这样的代码,没有Return,你们说走不走后台。
还是不行.我记得ajax有那种正在加载中的控件吧.! 不过不记得是什么了.! 求教.
我考虑你代码的问题就是setTimeout的问题,因为代码没有执行完,所以不运行后面的Submit
解决办法很简单,不要使用服务器端控件,使用HTML控件,然后自己写Summit去提交,提交前给一个特定的隐藏域中放一个值,用来在后台判断,这样肯定可以实现你要的效果