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。。。