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