当前位置: 代码迷 >> ASP.NET >> Button添加事件委托有关问题
  详细解决方案

Button添加事件委托有关问题

热度:4730   发布时间:2013-02-25 00:00:00.0
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。。。
  相关解决方案