[英]Pass Page Name to function (ASP.Net)
我有一个例程,可以在页面上找到所有控件,然后对它们进行一些更改。 该例程工作得很好,但是我必须将代码块添加到每个母版页和内容页中才能获得结果。
我想创建一个子例程(将在模块中),当从每个页面调用该子例程时,它将执行工作。 我想要做的唯一一件事就是能够将控件所在的页面名称传递给子例程以运行我的例程,并使模块对我通过的页面进行我需要的更改对它。
我确信这是一个简单的过程,但是对于我的一生,我无法解决。 有人可以帮我传递页面名称,以便例程将更改应用于该页面吗? 我在Visual Studio 2010中使用asp.net,而背后的代码是vb.net。
我的例程是用后面的代码编写的,而不是用Java或aspx写的。 我不在乎答案是在C#还是vb.net中,因为我可以根据需要进行转换。 预先感谢克里斯
当您从模块调用它时,可以将this.Page.UniqueID值作为参数发送给子例程。
如果要当前页面的类名,请使用:
this.GetType().Name;
如果您的页面继承自另一个页面,则可以使用:
this.GetType().BaseType.Name;
我要做的是创建一个基础页面,所有页面均从该基础页面继承,并将FindAllControls()
方法放在那里。
这是一个可能看起来像的例子:
using System.Web.UI;
public abstract class BasePage : Page
{
public void FindAllControls()
{
var currentClassName = this.GetType().BaseType.Name;
// Do stuff.
}
}
然后,例如,如果您有一个“登录”页面,它将看起来像这样:
using System;
public partial class Login : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
this.FindAllControls();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.