1

海,

我正在使用 JavaScript 函数编写基于 DateField 值的年龄计算,并尝试将值填充到另一个数字文本框中。使用以下代码。

<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);用于从表单中获取元素并设置年龄的值textbox

上面的代码适用于简单的形式。

但是当我在 UserControl 中使用此代码并以另一种形式使用 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 回答