从单独的类访问页面控件

时间:2010-08-06 12:41:30

标签: c# asp.net

我想知道如何从我制作的单独类中访问页面控件。我尝试过使用谷歌发现的一些东西,但没有运气:(

我要做的是保留一个经常在全局类中使用的函数。

然后,该函数访问页面文字并调用ScriptManager.RegisterStartupScript。我希望这是可能的,所以这个函数不必复制到所有页面。

3 个答案:

答案 0 :(得分:2)

我不确定我是否理解正确 - 如果没有,请发布一些示例代码。

如果你的页面为默认,后面的代码如下:

public partial class Default : System.Web.UI.Page
{
    //Some methods
}

你可以创建一个这样的辅助类:

class Helpers
{
    public static void YourHelperMethod(Default page)
    {
        //You can access your controls here like:
        page.someLabelControl.Text = "Some text";
    }
}

如果您希望它可以与所有页面一起使用,您可以像以下一样“找到”控件。但是,如果需要在所有页面上执行某些操作,则应使用母版页和代码。

class Helpers
{
    public static void YourHelperMethod(Page page)
    {
        //You can access your controls here like:
        Label label = page.FindControl("labelName") as Label;

        if (label == null)
            //The control could not be found

        label.Text = "Some text";
    }
}

答案 1 :(得分:0)

您的方法应接受Literal作为参数。使用要修改的标签调用方法。请注意,您尝试访问的文字必须在生命周期之前创建

答案 2 :(得分:0)

我不确定我是否理解你的任务。无论如何,如果你有一个Page对象和一个控件的名称,你应该访问,代码应该是:

class Helper
{
    public static void SomeHelperMethod(Default page, string controlName)
    {
        Control control = page.Form.FindControl(controlName);
        if(control != null) { 
           // your code here
        }
    }
}