【问题标题】:User control event extension is possible?用户控制事件扩展是可能的吗?
【发布时间】:2013-10-08 05:36:45
【问题描述】:

在不更改关联类 (usercontrol.cs) 文件的情况下扩展用户控件中的事件,在 app_code 中添加为单独的类,这可能吗? 原因: 我正在使用 CMS (Ektron),所以我无法在 usercontrol.cs 文件中添加代码

代码示例:

用户控制 ascx 文件

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="Usercontrols_WebUserControl" %>
<asp:Button ID="Button1" runat="server" Text="Click me" 
    onclick="Button1_Click" />

用户控制.cs文件

 protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("clicked the button");
    }

所以我需要通过创建一个新类或任何其他选项来添加一些其他代码(例如:Response.Write("clicked required button");) 到 'Button1_Click' 事件?

【问题讨论】:

    标签: c# asp.net class user-controls partial-classes


    【解决方案1】:

    这只有在主 .cs 文件中的类定义为 partial class 时才有可能。否则不行。

    【讨论】:

    • 因为我研究的部分类方法不能在扩展类中覆盖而不创建继承部分类的新类。
    【解决方案2】:

    处理 aspx 页面上的按钮单击事件就足够了吗?如果是这样,那么您需要将事件从控件公开到页面。看看下面的帖子:

    how to add an event to a UserControl in C#?

    【讨论】:

    • sry 不是我想要的,我想要的是在不更改 usercontrol .cs 文件的情况下向 Button1_Click 添加一些逻辑
    • Button1_Click 应该使用virtual 关键字编写;您应该派生 usercontrol 类并覆盖该方法;然后在您的 aspx 页面中使用该派生实例。否则没有其他办法......我想。 //手指交叉//
    猜你喜欢
    • 2011-10-28
    • 2010-10-21
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多