0

default.master で、このユーザーコントロールを呼び出しています

<uc8:MenuMain2 ID="MenuMain2" runat="server" RootCategoryId="30" ImageHeight="40"
                    ImageWidth="900" />

コード ビハインドの変数を RootCategoryId の値として使用したいのですが、どうすればよいですか。変数を使用しようとすると、" this is not script let. will output as plain text"が表示されます。

4

2 に答える 2

1

@Boomerが言及しているように、クラス実装のフィールドではなく、プロパティを使用する必要があります。

すべてのコントロールは、ViewState で自分のプロパティを気にする必要があります。これは Microsoft の実践MSDN の証明リンクです

使うほどじゃない

public string RootCategoryId {get; set;}

値を ViewState に保存します。

public string RootCategoryId
{
  get
  {
    return ViewState["RootCategoryId"] == null ?
       "Default Value!" :
       (string)ViewState["RootCategoryId"];
  }
  set { ViewState["RootCategoryId"] = value; }
}

この場合、ソース コードでこのプロパティに割り当てた値は、ポストバック中も保持されます。

読むべき別の情報源: http://aspnetresources.com/articles/ViewState

于 2013-01-16T10:38:18.923 に答える
1

MenuMain2ですclass。というパブリック プロパティを追加しますRootCategoryId。これにより、クライアント側とサーバー側から値を割り当てることができます。

たとえば、これを MenuMain2 コントロールのコード ビハインドに追加します。

public string RootCategoryId {get; set;}
于 2013-01-16T08:48:34.207 に答える