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;
            }
        }
posted @ 2011-12-20 10:03  Wilson_Chan  阅读(134)  评论(0编辑  收藏  举报