将参数后面的代码传递给Ext.Net控件

时间:2012-09-28 14:52:38

标签: c# ext.net

我在控件后面的代码中有一个变量。我想将此值传递给Web控件中的Ext.Net控件。在我的实例中,我有一个ext.multicombo,我想将一个值传递给它的工具提示。

代码背后:

protected override void OnPreRender(EventArgs e)
{
this.MaxFuelFilter = System.Configuration.ConfigurationManager.AppSettings["MyVariable"]; 
}

Control.aspx

<ext:multicombo ID="ddlFlightNumber" runat="server" ClientID="ddlFlightNumber" IndicatorTip="blah blah blah  <%=MyVariable%> blah blah blah"></ext:multicombo>

我该怎么办?

由于

2 个答案:

答案 0 :(得分:2)

有一些问题:

您使用的语法不适用于ASP.NET控件。这是ASP.NET限制,与Ext.NET无关。

这不是有效的ASP.NET语法:

PropertyName="foo foo <%=MyVariable%>"

而且,这不是有效的ASP.NET语法:

PropertyName="<%=MyVariable%>"

要将值传递给属性,您需要使用<%# %> DataBinding语法。

虽然,这也是无效的ASP.NET语法:

PropertyName="foo foo <%# MyVariable %>"

该属性必须仅包含数据绑定变量/脚本,例如

PropertyName="<%# MyVariable%>"

AND ...你必须在Control上调用.DataBind(),例如

this.MyControl1.DataBind();

或者,使用Ext.NET控件,您可以设置.AutoDataBind="true"属性,并自动为您处理DataBinding,例如

<ext:TextField runat="server" PropertyName="<%# MyVariable%>" AutoDataBind="true" />

以上自定义属性自动序列化为JavaScript,现在可供该控件的客户端实例(以及其他)使用。然后,您可以从其他JavaScript代码调用该属性。

对于您的方案,我建议您点按<AfterRender>的{​​{1}}监听器以获取属性值并设置其他内容。以下示例演示了完整方案(<ext:MultiCombo>),并演示了另一种基本技术(myVar),用于将JavaScript变量从服务器端传递到客户端。

示例

myVar2

您应该能够调整上述内容以使用自定义控件。

希望这有帮助。

答案 1 :(得分:0)

MyVariable在哪里定义?如果它是页面类的publicprotected成员,并且在页面生命周期中尽早初始化(Page_Init也许?也许Page_Load但我会仔细检查并测试它然后这种方法应该工作。