日期:2014-05-17  浏览次数:20529 次

Button添加事件委托问题
页面上有一个Button和一个UpdatePanel,为什么需要点击两次Button,UpdatePanel才更新,而不是点击一次. 代码如下,帮帮忙解决.

C# code


    protected void Page_Load(object sender, EventArgs e)
    {
        this.bt.Click += new EventHandler(PanelUpdate);  //添加事件委托      
    }

    void PanelUpdate(object sender, EventArgs e)
    {
        this.UpdatePanel1.Update();
    }

    protected void bt_Click(object sender, EventArgs e)   //Button点击事件
    {
        ......   ///一些代码 
         
    }




------解决方案--------------------
你就不会把BUTTON的HTML里加上ONCLICK事件!!!!!
------解决方案--------------------
onclientclick
------解决方案--------------------
bt你给ID了没??如果没有那么就要点两次才会走。。。因为点第一次的时候程序会自动给bt赋个ID,然而不会走事件,所以需要点两次!!!
------解决方案--------------------
设一下trigger
------解决方案--------------------
...... ///一些代码 
放到void PanelUpdate(object sender, EventArgs e)
{
this.UpdatePanel1.Update();
}
这个里

------解决方案--------------------

调试下看 点击第一下 进没进入 PanelUpdate这个方法体中 
如果没进入 说明第一次点击的 没响应 button事件
------解决方案--------------------
UpdatePanel的UpdateModel修改下属性 试试
------解决方案--------------------
protected void Page_Load(object sender, EventArgs e)
{
this.bt.Click += new EventHandler(PanelUpdate); //添加事件委托
}

这里加个 if(IsPostBack)看下!
因为你一提交页面又重新加方法了!
------解决方案--------------------
LZ看了你的问题 要点击两次 意思就是点第二次才调用到委托

------解决方案--------------------

protected void bt_Click(object sender, EventArgs e) //Button点击事件
{
...... ///一些代码 
this.UpdatePanel1.Update();

}
------解决方案--------------------
第一次注册事件,第二次才会触发事件 !
------解决方案--------------------
其它问题先不说了,单就这个“刷新”的问题,我对你的代码做了一点修改。

首先对于Header.ascx.cs,我增加了两条代码,目的是抛出事件通知:
C# code
public partial class Header : System.Web.UI.UserControl
{
    public event Action CodeSession_Changed;

    protected void search_Click(object sender, EventArgs e)
    {
        if (!this.TextBox1.Text.Equals(""))
        {
            Session["code"] = this.TextBox1.Text;
            if (this.CodeSession_Changed != null)
                this.CodeSession_Changed();
        }
    }
}

------解决方案--------------------
wslxxd。。。