海
我正在使用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
值后的上述代码中,我填充了txtMotherAge
中的textBox
值。
使用上面的代码。 Ext.getCmp('txtFatherAge').setValue(age);
用于从表单中获取元素并在textbox
中设置age的值。
以上代码适用于简单表单。
但是当我在UserControl中使用此代码并在另一个窗体中使用usercontrol时。 Ext.getCmp('txtFatherAge').setValue(age)
显示错误,Ext.getCmp('txtFatherAge')
值变为'undefined'
。
上面的代码有什么问题。如何在ext.net控件中获取usercontrol中的元素。
请帮助我。
谢谢。
答案 0 :(得分: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>