0

私の質問は簡単に思えますが、解決策が見つかりませんでした。

私は次のようにaspxを持っています:

namespace WebApplication3.asp_x
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

ascx は次のようになります。

namespace WebApplication3.asc_x
{
    public partial class WebUserControl1 : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        public LinkButton lbTest
        {
            get {
                return this.lbTest;
            }
        }
    }
}

aspx ファイルから、パブリック プロパティ lbTest にアクセスしたいのですが、次のようにしますが、動作しません (コンパイルしません)。

namespace WebApplication3.asp_x
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            LinkButton lb = WebApplication3.asc_x.WebUserControl1.lbTest;
        }
    }
}

ここに何が欠けているのか誰か教えてもらえますか?

4

3 に答える 3

0

変な呼び方だと思う

LinkButton lb = WebApplication3.asc_x.WebUserControl1.lbTest;

ラベルを呼び出すにはインスタンスが必要になるためです。

ページに のインスタンスがある場合にusercontrolのみ、そのパブリック プロパティを呼び出すことができます。

namespace WebApplication3.asp_x
{
   public partial class _Default : System.Web.UI.Page
   {
      protected void Page_Load(object sender, EventArgs e)
      {
        WebApplication3.asc_x.WebUserControl1 ob=new WebApplication3.asc_x.WebUserControl1();
        LinkButton lb = ob.lbTest;
      }
   }
}

編集 1

placeholer最初に最初のものを見つける必要があります。次に
user-controlインプレース ホーダー
を見つけてから、リンク ボタンを見つけます。

p1ページにプレースホルダーがあるとします。
次のように見つけます。

PlaceHolder p=(PlaceHolder)Page.FindControl('p1');   

次に、次のようにプレースホルダー p 内のユーザーコントロールを見つけます 。プレースホルダーに
ユーザーコントロールがあるとしますuc1

UserContro1 uc1=(UserControl1)p.FindControl("uc1");

そして、あなたはこの中にリンクを見つけることができ
ます

LinkButton lb = uc1.lbTest;
于 2013-04-11T11:09:19.233 に答える
0

ユーザー コントロールをインスタンス化 (新しいオブジェクトを作成) する必要があります)。

例:

LinkButton lb = (new WebApplication3.asc_x.WebUserControl1()).lbTest;

またはそのようなもの。既にページ上のコントロールでない限り。次に、単にサーバー ID を使用します。

于 2013-04-11T11:13:34.247 に答える
0

ユーザー コントロールのID を使用して、任意のプロパティにアクセスします。
指定された Id は、実際にはcodebehindのユーザー コントロールのインスタンス名です。

WebApplication3.asc_x.WebUserControl1.lbTest のようにアクセスする静的プロパティではありません

于 2013-04-11T11:06:56.943 に答える