Ext:Radio check后显示和隐藏控件错误的问题
有两个单选控件
选1个时候会显示3控件,并隐藏4控件
选2个时候会显示4控件,并隐藏3控件
对应关系:
1--3
2--4
功能我自己可以实现,但是有一个bug。
选1后,在选2,然后在选1,却只会显示4控件。
真的搞不懂什么问题啊!
是不是需要在显示或隐藏之前判断些什么条件呢?
<ext:RadioGroup ID="RadioGroup1" runat="server">
<Items>
<ext:Radio ID="Success" runat="server" BoxLabel="1" Checked="false">
<AjaxEvents>
<Check OnEvent="Check1"></Check>
</AjaxEvents>
</ext:Radio>
<ext:Radio ID="Fail" runat="server" BoxLabel="2" Checked="false">
<AjaxEvents>
<Check OnEvent="Check2"></Check>
</AjaxEvents>
</ext:Radio>
</Items>
</ext:RadioGroup>
<ext:Label ID="Label1" runat="server" Text="1" Hidden="true"></ext:Label>
<ext:Label ID="Label2" runat="server" Text="2" Hidden="true"></ext:Label>
public void Check1(object sender, AjaxEventArgs e)
{
this.Label1.Hidden = false;
this.Label2.Hidden = true;
}
public void Check2(object sender, AjaxEventArgs e)
{
this.Label1.Hidden = true;
this.Label2.Hidden = false;
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
问题解决了
原来Coolite的Radiogroup里面的Radio check的时候会调用最前面的事件。
也就是说按2的时候,其实在执行1的命令。
所以得在前面加点判断。同理,用js和用ajaxevent一样要再前面加判断。
public void Check1(object sender, AjaxEventArgs e)
{
if(this.Success.checked)
{
this.Label1.Hidden = false;
this.Label2.Hidden = true;
}
else
{
this.Label1.Hidden = true;
this.Label2.Hidden = false;
}
}
public void Check2(object sender, AjaxEventArgs e)
{
if(this.Fail.checked)
{
this.Label1.Hidden = true;
this.Label2.Hidden = false;
}
else
{
this.Label1.Hidden = false;
this.Label2.Hidden = true;
}
}