将变量传递给UserControl

时间:2010-12-08 14:57:06

标签: c# asp.net parameter-passing

我尝试将Package变量传递给我的UserControl:

<uc:Template ID="Template" runat="server" Package="<%=TemplateParams.SimpleSearch %>" />

但没有运气 - 在UC中,它为<%=TemplateParams.SimpleSearch %>类提供了SimpleSearch字符串而不是TemplateParams参数。

怎么做?

编辑:

关于我知道的代码背后的方式 - 我想知道如何从视图中做到这一点。

4 个答案:

答案 0 :(得分:0)

从后面的代码中,您可以传递变量或设置属性

Template.variable="foo";

答案 1 :(得分:0)

Page.FindControl("Template").Attributes.Add("Package", "YourValueGoesHere");

答案 2 :(得分:0)

在包含您尝试公开的属性的用户控件中,您可以设置BrowsableAttribute属性:

[BrowsableAttribute(true)]
public string myProperty { get; set; }

这应该在控件的xml版本中公开它。

修改
如果您的TemplateParams.SimpleSearch是字符串,那么您应该可以执行以下操作:

Package='<%=TemplateParams.SimpleSearch%>'

'在这里有所不同。如果它是一个对象,你必须在后面的代码中执行它。

答案 3 :(得分:0)

另一种方法是,如果您真的想在标记中执行此操作,请使用expression builder

我们将this one用于许多类似的任务

这将允许您编写类似

的代码
<uc:Template ID="Template" runat="server" Package="<%$ Code : TemplateParams.SimpleSearch %>" />