1

ハイ、

JavaScript 関数を使用して DateField 値に基づいて Age 計算を記述し、別の Numeric textBox に値を入力しようとしています。次のコードを使用します。

<script>

        function getAge(event, toolEl, panel, tc) {
            debugger;
            var today = new Date();
            var birthDate = new Date(event.getValue());
            var age = today.getFullYear() - birthDate.getFullYear();
            var m = today.getMonth() - birthDate.getMonth();
            if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
                age--;
            }
            if (event.name == 'dtMotherDOB') {
                Ext.getCmp('txtMotherAge').setValue(age);
            }
            else
                Ext.getCmp('txtFatherAge').setValue(age);
            return age;
        }


    </script>


 <ext:DateField ID="dtFatherDOB" runat="server"  FieldLabel="Father DOB"  
                                        Vtype="daterange" EndDateField="dtDOB" EnableKeyEvents="true">
         <Listeners>
                 <Select Fn="getAge"/>
        </Listeners>
  </ext:DateField>

  <ext:NumberField ID="txtFatherAge" runat="server" FieldLabel="Father Age"                       Width="300"  MinValue="20">

    </ext:NumberField>

上記のコードでは、値を選択した後、 に値をDataField入力しています。txtMotherAgetextBox

上記のコードを使用します。 Ext.getCmp('txtFatherAge').setValue(age);form から要素を取得し、 age の値を設定するために使用されますtextbox

上記のコードは、単純なフォームに対して正常に機能しています。

しかし、このコードを UserControl で使用し、別のフォームでユーザー コントロールを使用すると。 Ext.getCmp('txtFatherAge').setValue(age)表示誤差とExt.getCmp('txtFatherAge')なり'undefined'ます。

上記のコードの問題は何ですか。ext.net コントロールの usercontrol の要素を取得する方法。

この点で私を助けてください。

ありがとうございました。

4

1 に答える 1

3

これを試して:

Ext.getCmp('<%=UserControl1.ClientID%>' + '_' + 'txtFatherAge').setValue(age)

または、

設定ClientIDMode="Static"

<ext:NumberField ID="txtFatherAge" ClientIDMode="Static" runat="server"    
 FieldLabel="Father Age" Width="300"  MinValue="20"></ext:NumberField>
于 2013-03-15T14:28:28.313 に答える