1

私はC#を初めて使用し、appcodeフォルダーにメソッドとしていくつかのクラスを作成しました。これらは、多数の HTML コントロールを含む aspx ページのコード ビハインドであるメイン クラスから呼び出されます。呼び出されるメソッドは、Gridview1 や Label1 など、これらの asp HTML コントロールの一部を表示/非表示にする必要があります。ただし、これらのアプリコード クラスはメイン クラスのコントロールを認識しません。メインクラスを継承しようとしましたが、それができないようです。ここにコンセプトがありませんか?名前空間を使用する必要がありますか? Using ディレクティブは必要ですか? それを継承するために何らかの方法でメインクラスにプレフィックスを付ける必要がありますか? どのメソッドでもメインの aspx コントロールを見ることができると思っていたので、何かが欠けています。シンプルなコード ビハインド cs (A) と、(A の) コントロールを非表示にするシンプルな appcode フォルダー cs (B) の例を教えてください。

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 Control(Label) をメソッド パラメーターとして渡す必要があります。

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