繁体   English   中英

Gridview中来自UserControl的事件未触发

[英]Events from UserControl in Gridview are not being fired

我有一个gridview在每一行的模板列中都有一个usercontrol。

在RowDataBound事件期间,我按以下方式订阅了该事件

DateTimePicker dtp = (DateTimePicker)e.Row.FindControl("DateTimePickerPromoRunDate");
dtp.OnDateChanged +=new CustomEventHandler(dtp_OnDateChanged);

然后在控件中,我有以下内容

public class CustomEventArgs : EventArgs
{
    public CustomEventArgs(DateTime dateSelected)
    {
        DateSelected = dateSelected;
    }
    public DateTime DateSelected { get; set; }
}

public delegate void CustomEventHandler(object sender, CustomEventArgs e);

public partial class DateTimePicker : System.Web.UI.UserControl
{
    public event CustomEventHandler OnDateChanged;
    protected virtual void OnCustomEvent(CustomEventArgs e)
    {
        e.DateSelected = Convert.ToDateTime(TextBoxDate.Text);
        if (OnDateChanged != null)
            OnDateChanged(this, e);
    }
 [blah blah blah]
 OnCustomEvent(new CustomEventArgs(Calendar1.SelectedDate));

问题是,当我调用OnCustomEvent方法时,OnDateChanged事件为null,就好像我尚未订阅该事件一样。

存在类似的问题,如果在尝试使用数据绑定时在数据绑定上设置usercontrol的属性,这些属性为null ...有人可以指出我在这里做错了什么吗?

您可能必须在每个帖子上订阅ondatechanged。 否则页面将无法记住它。

通过将事件调用放在页面的元数据一侧,我设法解决了问题。 这不是理想的,但现在正在解雇

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM