当前位置:编程学习 > C#/ASP.NET >>

关于asp.net user control 中 的 按钮 事件 的 触发问题

我有一个user control,里面有个按钮,前台代码例子如下:
<div>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="buttonclick" />
</div>

在后台我也定义了buttonclick 方法了。

在放这个控件的页面里,我有个timer,每次timer tick的时候,我需要重新载入那个控件。 我的问题是,每次那个控件的按钮,我得点两下,才能调用buttonclick方法,请问大家是什么问题?如何解决?如果我去掉那个timer,那一切都正常,就是加了timer,不行。我加timer是因为那个user control本来还有其他的label,然后timer不断query后台,然后update那个label。

页面的前台代码如下:

<form id="form1" runat="server">
    <div>
        <asp:PlaceHolder ID="pl" runat="server">
        </asp:PlaceHolder>

        <asp:Timer ID="Timer1" Interval="2000" Enabled="true" runat="server" 
            ontick="Timer1_Tick">
        </asp:Timer>
    </div>
 </form>

后台代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            temp();
        }

        protected void temp()
        {
            pl.Controls.Clear();
            var tempControl = (WebUserControl1)LoadControl("~/WebUserControl1.ascx");
            pl.Controls.Add(tempControl);
        }

        protected void Timer1_Tick(object sender, EventArgs e)
        {
            temp();
        }
    }
} asp.net 控件 user control 用户控件 --------------------编程问答-------------------- user control里的button的click事件,写在user control的load里,
Button1.onclick+=.....这种形式
试试 --------------------编程问答-------------------- 程序员同学,先将timer1设为10分钟。
请打开Fiddler2,看看你第一次点击后,发生了什么?第二次点击发生了什么?分别查看生成的HTML和提交的html,一切都无所遁形!

Button的OnClick最终是靠js引发的。依靠这条线,慢慢检查即可。 --------------------编程问答-------------------- 只看服务器端的逻辑会让你眼迷,最终要靠HTTP和HTML说话! --------------------编程问答-------------------- 还有其他的方法吗?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,