使用变量从主页面调用usercontrol

时间:2013-01-16 08:40:06

标签: c# asp.net user-controls

在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

2 个答案:

答案 0 :(得分:1)

MenuMain2class。添加一个名为RootCategoryId的公共属性。这将允许您从客户端和服务器端为其分配值:

例如,将其添加到您的MenuMain2控件代码隐藏:

public string RootCategoryId {get; set;}

答案 1 :(得分:1)

@Boomer提到你应该使用属性,而不是类实现中的字段。

每个Control都应该关注ViewState中的属性。这是Microsoft惯例MSDN prooflink

使用

是不够的
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