いくつかの問題があります:
使用している構文は、ASP.NETコントロールでは機能しません。これはASP.NETの制限であり、Ext.NETとは関係ありません。
これは有効なASP.NET構文ではありません。
PropertyName="foo foo <%=MyVariable%>"
そして、これは有効なASP.NET構文ではありません。
PropertyName="<%=MyVariable%>"
プロパティに値を渡すには、<%# %>
DataBinding構文を使用する必要があります。
ただし、これも有効なASP.NET構文ではありません。
PropertyName="foo foo <%# MyVariable %>"
プロパティには、databind変数/スクリプトのみを含める必要があります(例)
PropertyName="<%# MyVariable%>"
AND ...コントロールで.DataBind()を呼び出す必要があります。例
this.MyControl1.DataBind();
または、Ext.NET Controlsを使用すると、.AutoDataBind="true"
プロパティを設定でき、DataBindingが自動的に処理されます。
<ext:TextField runat="server" PropertyName="<%# MyVariable%>" AutoDataBind="true" />
上記のカスタムプロパティはJavaScriptに自動シリアル化され、そのコントロール(およびその他)のクライアント側インスタンスで使用できるようになりました。その後、他のJavaScriptコードからそのプロパティを呼び出すことができます。
<AfterRender>
シナリオでは、のリスナー<ext:MultiCombo>
を利用してプロパティ値を取得し、別の値を設定することをお勧めします。次のサンプルは、完全なシナリオ( )を示し、JavaScript変数をサーバー側からクライアント側に渡すためのmyVar
別の基本的な手法()も示しています。myVar2
例
<%@ Page Language="C#" %>
<%@ Register assembly="Ext.Net" namespace="Ext.Net" tagprefix="ext" %>
<script runat="server">
string myVar;
string myVar2;
protected void Page_Load(object sender, EventArgs e)
{
myVar = "Label 1";
myVar2 = "Label 2";
}
</script>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Ext.NET Example</title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:TextField
ID="TextField1"
runat="server"
MyVar="<%# myVar %>"
AutoDataBind="true"
FieldLabel="Testing">
<Listeners>
<AfterRender Handler="this.setFieldLabel(this.myVar);" />
</Listeners>
</ext:TextField>
<ext:TextField
ID="TextField2"
runat="server"
MyVar="<%# myVar2 %>"
AutoDataBind="true"
FieldLabel="Testing">
<Listeners>
<AfterRender Handler="this.setFieldLabel(myVar2);" />
</Listeners>
</ext:TextField>
<script type="text/javascript">
var myVar2 = "<%= myVar2 %>";
</script>
</form>
</body>
</html>
カスタムコントロールで動作するように上記を適応させることができるはずです。
お役に立てれば。