首页 新闻 会员 周边

Button按钮第一次点击为什么不能触发事件中的js代码。

0
悬赏园豆:10 [已解决问题] 解决于 2009-08-10 09:01

Button按钮第一次点击为什么不能触发事件中的js代码。

代码如下

aspx代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="_Default" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>demo</title>
</head>
<body>
    <form action="" runat="server">
        <div>
            <asp:HiddenField ID="HiddenField1" runat="server" />
            <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />
        </div>
    </form>
</body>
</html>

cs代码

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;

public partial class _Default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Button2.Attributes.Add("onclick", "if(confirm('aa')){document.getElementById('HiddenField1').value='true';}else{document.getElementById('HiddenField1').value='false';}");

        Response.Write(this.HiddenField1.Value + "111");
    }
}

江峰的主页 江峰 | 初学一级 | 园豆:178
提问于:2009-08-07 18:07
< >
分享
最佳答案
0

因为进入页面的时候你都没有初始化啊,你是做点击的时候才添加按钮JS事件

Button2.Attributes.Add("onclick", "if(confirm('aa')){document.getElementById('HiddenField1').value='true';}else{document.getElementById('HiddenField1').value='false';}");

放到Page_Load里面

收获园豆:5
@GB | 初学一级 |园豆:190 | 2009-08-07 21:09
添加IsPostBack的判断
slokra | 园豆:264 (菜鸟二级) | 2009-08-08 10:09
其他回答(1)
0

因为第一次进入页面时你想加上去的那个方法并没有加到按钮上去,而在第一次点击之后,执行了Button2_Click之后才把JS绑定以按钮上去的。

我没有试你的代码,不过感觉上应该是有问题的,当你第二次点击时,JS已经绑定到按钮上,如果你再点一次,就会第二次绑定,如此循环,大大不妥。

看起来,你这段代码只是想在客户端显示一些什么,那么可以考虑使用HTML控件,而不要使用ASP.NET控件。

收获园豆:5
丁学 | 园豆:18730 (专家六级) | 2009-08-08 16:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册