【问题标题】:Calling Page from Class从课堂调用页面
【发布时间】:2014-05-15 10:56:00
【问题描述】:

我有这段代码可以从我的服务器显示一个 javascript 消息警报框,它工作正常,但现在我想将整个代码移动到一个静态类中,以便我可以从应用程序中的任何位置调用它,而无需复制再次向该页面编码,这是我现在使用的功能:

private static void MessageBox(string msg)
{
    Label lbl = new Label();
    lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert('" + msg + "')</script>";
    Page.Controls.Add(lbl);
}

现在我希望能够从我在应用程序中创建的任何 Web 表单上的静态类调用此函数。

这是我在“Page.Control.Add(lbl)”上得到下划线的错误:

【问题讨论】:

    标签: c# javascript asp.net class static-methods


    【解决方案1】:

    在代码隐藏中PagePage 类型的属性(我知道很困惑!)所以它引用Page 类的一个实例。对于此范围之外的静态方法,它只知道 Page 类,因此编译器会看到您尝试调用名为 Controls 的静态属性,该属性在 Page 类中不存在,因此会引发错误方式。

    您需要将Page 实例传递给MessageBox 方法:

    public static void MessageBox(Page page, string msg)
    {
        Label lbl = new Label();
        lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert('" + msg + "')</script>";
        page.Controls.Add(lbl);
    }
    

    【讨论】:

    • 谢谢你的工作,老实说我不知道​​没有stackoverflow我会在哪里:)
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2011-10-12
    相关资源
    最近更新 更多