【问题标题】:ASP.Net User Control - VS Event WireupASP.Net 用户控制 - VS 事件连线
【发布时间】:2009-09-21 18:59:06
【问题描述】:

所以我有一个自定义用户控件。我有一个事件 (SelectionChanged),我希望有人使用我的控件执行以下操作来连接事件:

  1. 将控件拖到页面上
  2. 在设计器模式下,点击控件
  3. 查看控件事件处理程序(从属性窗口)
  4. 找到 SelectionChanged 事件
  5. 双击并让 Visual Studio 在 aspx 页面上创建函数背后的代码和连线。

我该如何完成这项工作?我已经有了控制设置,这样用户就可以手动输入事件连接和事件背后的代码,但我希望 Visual Studio 能做到这一点。

目前,当开发人员将我的控件放在页面上时,他们可以单击它并查看属性,但没有可用的事件(闪电甚至不存在)。


我的活动是公开的。他们在这里:

public delegate void SelectionChangedDelegate(object sender, SelectionChangedEventArgs e);
public event SelectionChangedDelegate SelectionChangedEvent;

【问题讨论】:

  • 您的活动是否公开?
  • 看看这个链接是否有帮助 - msdn.microsoft.com/en-us/library/t4z863dh%28VS.71%29.aspx
  • Shahkalpesh,我不确定该链接有何帮助。我可以毫无问题地创建我的控件,但我想要 V.S.为我创建事件处理程序接线。我不希望其他开发人员必须输入“protected void UC_SitesBar_SelectionChanged(object sender, SelectionChangedEventArgs e) { }”。每次您想订阅我的活动时,这似乎都是一个巨大的麻烦。

标签: asp.net user-controls event-handling


【解决方案1】:

我不明白为什么没有闪电。您的控件是继承自 System.Web.UI.HtmlControls.HtmlControlSystem.Web.UI.Control 还是其他派生控件?

如果您从这些控件之一继承,您应该在属性窗口中看到继承的事件。

闪电不存在的事实使我相信您没有从其中一个控件类继承。

编辑: 好吧,你不会喜欢这个的。 UserControl 的行为与 WebControl 不同。因此,VS 编辑器不会连接事件。

如果 Event Wireup 对您很重要(如果这将是一个出售的库),我建议您将控件重写为 WebControl。这将要求您以编程方式在 CreateChildControls 覆盖方法中添加所有控件。

您也许还可以将您的 UserControl 包装在 WebControl 中,并以这种方式冒泡所有事件。

祝你好运!

【讨论】:

  • 这是我班级的声明:public partial class UC_SiteBar : System.Web.UI.UserControl
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多