如何实现用户控件';用户控制之外的方法
本文关键字:用户 控制 方法 控件 何实现 实现 | 更新日期: 2023-09-27 18:00:55
假设我有一个用户控件(SubmitButton(,它有一个提交按钮,当用户单击该按钮时,我希望包含SubmitButton实例的控件决定提交按钮的行为。
我在用户控制.cs文件中尝试了以下操作:
protected void nextPage_Click(object sender, EventArgs e) {
submitData();
Response.Redirect("completed.aspx");
}
protected abstract void submitData();
但是我不知道submitData方法应该在哪里实现。
这就像是方法的占位符。
您的控件应该公开事件。例如SubmitClickd。然后在包含它的控件中订阅该事件并执行您选择执行的任何操作。如果您已公开事件,则可以根据需要附加任意多的事件处理程序。
asp:Button已经做到了这一点。它在aspx页面中公开了Click事件和。您只需订阅该事件并在代码隐藏文件中实现事件处理程序。
这将是一个抽象类。你永远不能创建这些的实例,你必须创建自己的类,从中继承并实现抽象方法和属性。例如:
public class MySubmitButton : SubmitButton {
protected override void submitData() {
// do somthing
}
}
尝试类似于函数委托的东西:
using System;
namespace ConsoleApplication1
{
public delegate void FunctionToBeCalled();
public class A
{
public FunctionToBeCalled Function;
public void Test()
{
Function();
Console.WriteLine("test 2");
}
}
class Program
{
static void Main(string[] args)
{
A instanceA = new A();
instanceA.Function = TheFunction;
instanceA.Test();
}
static void TheFunction()
{
Console.WriteLine("test 1");
}
}
}