在类约会模板内的链接按钮上设置事件处理程序不会触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在类约会模板内的链接按钮上设置事件处理程序不会触发相关的知识,希望对你有一定的参考价值。

我有一个telerik RadScheduler控件,我正在创建一个自定义约会模板。模板成功绑定,但是我的模板内部是一个链接按钮,我想将事件绑定到。我可以看到事件绑定,但它不调用代码并点击response.redirect,而是页面刷新,约会模板消失。如何在按钮单击时正确处理事件? apptemplate将附加在页面加载上。

public class AppTemplate : ITemplate
        {
            public void InstantiateIn(Control container)
            {
                SchedulerAppointmentContainer aptCont = (SchedulerAppointmentContainer)container;
                Appointment app = aptCont.Appointment;
            LinkButton lbs = new LinkButton();
            lbs.ID = "btnConductAppointment";
            lbs.Text = "<div style="font-weight:bold;">" + app.Attributes["ApptClientID"] + "</div><div>" + app.Attributes["Title"] + " " + app.Attributes["Surname"] + "</div>";



            //nlbs.Click += btnConductAppointment_Click;
            lbs.DataBinding += new EventHandler(label1_DataBinding);
            lbs.CausesValidation = false;



            container.Controls.Add(lbs);
        }

        private void label1_DataBinding(object sender, EventArgs e)
        {
            LinkButton target = (LinkButton)sender;
            target.Click += new EventHandler(btnConductAppointment_Click);
        }

        protected  void btnConductAppointment_Click(object sender, EventArgs e)
        {
            HttpContext.Current.Response.Redirect(PageDirectory.Default, true);
        }
    }
答案

将绑定放在PageInit上意味着事件始终存在。

protected override void OnInit(EventArgs e)
{
   RadScheduler1.AppointmentTemplate = new AppTemplate();
}

以上是关于在类约会模板内的链接按钮上设置事件处理程序不会触发的主要内容,如果未能解决你的问题,请参考以下文章

表内的JS事件不会触发

节流 防抖

MeteorJS:在弹出窗口中不会触发模板事件

onClick和onChange不会在reactjs中的safari单选按钮上触发

当我在渲染视图后设置该输入类型的值时,为什么输入类型的更改事件不会触发?

jQuery 不会在禁用按钮上触发悬停事件吗?