1

我是 C# 新手,我在我的 appcode 文件夹中创建了几个类作为方法。这些是从主类调用的,主类是包含大量 HTML 控件的 aspx 页面的代码。被调用的方法将希望使这些 asp HTML 控件中的一些可见/不可见,例如 Gridview1 或 Label1。但是,这些 appcode 类看不到主类的控件。我试图继承主类,但这似乎不允许我这样做。我在这里错过了一个概念吗?我需要使用命名空间吗?我需要使用指令吗?我是否需要以某种方式为我的主类添加前缀才能继承它。我原以为任何方法都可以看到主要的 aspx 控件,所以我遗漏了一些东西。您是否有一个简单的代码隐藏 cs (A) 和一个简单的 appcode 文件夹 cs (B) 的示例,它使 (A's) 控件不可见?

4

2 回答 2

1

如果您使用的是 ASP.NET:

然后,您有一个.aspx文件,其中包含您的控件(例如标签、文本框等)。您还将拥有一个.cs与您的文件“协同工作”的.aspx文件。

假设您有以下代码:

     <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm7.aspx.cs" Inherits="Test.WebForm7" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Label id="ThisIsYourLabel" runat="server" text="Make me invisible"/>
    </div>
    </form>
</body>
</html>

.cs页面指令 ( CodeBehind="WebForm7.aspx.cs") 中指定的文件中,您可以访问您的控件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Test
{
    public partial class WebForm7 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ThisIsYourLabel.Visible = Tools.ChangeVisibility();
        }
    }
}

在您的情况下,您的 app_code 文件夹中有一组方法。

我在 app_code 中做了一个小方法:

public class Tools
{
    public static boolean ChangeVisibility()
    {
        return false;
    }
}

换句话说:您可以访问文件.aspx中页面上的控件。.cs您不能直接从.aspxapp_code 文件夹中的 1 个特定页面访问控件。designer.cs您可以在页面文件中将访问级别从受保护更改为公开,但我当然不建议您这样做

如果您运行此代码,您将不会在浏览器中看到任何内容,因为标签将设置为Visible = false;,但如果您调试它,您将看到它是如何工作的 :)

希望能帮助到你!

于 2012-07-29T11:53:51.943 回答
0

我认为这可能对你有帮助..,你可以尝试这样的事情......在你的 appcode 文件夹下的类文件中......

using System.Web.UI.WebControls;
public class Tools()
{

public static void set_label_properties(Label lb)
{

lb.Visible=false;
lb.Text="Your status msg..";


}

}

并且在您的 aspx.cs 文件中,您需要调用此方法..无论您需要..并将适当的 Web 控件(标签)作为您的方法参数传递..

Tools.set_label_properties(Label1);
于 2013-09-13T06:41:59.023 回答