好的,所以我有一个页面上有一个列表视图。列表视图的项目模板内部是一个用户控件。此用户控件正在尝试触发一个事件,以便托管页面可以收听它。我的问题是事件没有被触发,因为处理程序为空。(即 EditDateRateSelected 是我的处理程序,调试时它为空)
protected void lnkEditDate_Click(object sender, EventArgs e)
{
if (EditDateRateSelected != null)
EditDateRateSelected(Convert.ToDateTime(((LinkButton)frmViewRatesDate.Row.FindControl("lnkEditDate")).Text));
}
在我的 listvew 的项目数据绑定上是我添加事件处理程序的地方
protected void PropertyAccommodationRates1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
UserControls_RatesEditDate RatesViewDate1 = (UserControls_RatesEditDate)e.Item.FindControl("RatesViewDate1");
RatesViewDate1.EditDateRateSelected += new UserControls_RatesEditDate.EditDateRateEventHandler(RatesEditDate1_EditDateRateSelected);
RatesViewDate1.PropertyID = (int)Master.PropertyId;
if (!String.IsNullOrEmpty(Accommodations1.SelectedValue))
{
RatesViewDate1.AccommodationTypeID = Convert.ToInt32(Accommodations1.SelectedValue);
}
else
{
RatesViewDate1.AccommodationTypeID = 0;
}
RatesViewDate1.Rate = (PropertyCMSRate)((ListViewDataItem)e.Item).DataItem;
}
}
如果控件在页面内并且在页面加载时我有以下行,我的事件代码一切正常:
RatesEditDate1.EditDateRateSelected += new UserControls_RatesEditDate.EditDateRateEventHandler(RatesEditDate1_EditDateRateSelected);
但显然我需要监听 listviewcontrols 中的事件。
任何建议将不胜感激。我已经尝试将我的列表视图的 EnableViewState 设置为 true,但这并没有什么不同。我应该在其他地方连接控制处理程序吗?
注意 - 抱歉,如果我的术语有误,我将代表称为处理程序等:)