大家好!请教一个关于RadioButton的问题
描述如下:TextBox   RadioButton1(Checked=true)       RadioButton2(Checked=false)     Button1
以上是本例子默认RadioButton1为Checked,两个RadioButton的EnableViewState=false
Button1 click测试如下问题if(RadioButton1.Checked = ture)
{
   Rosponse.Write("aa");
}
else
if (RadioButton2.Checked = ture)
{
   Rosponse.Write("bb");
}
}
以上代码不是复制源代码,如有字符敲错不必讨论这个错现在问题是,当选择1 checked 可以显示 aa
当选中 2 checked 返回的还是 aa
这里请教如何保持RadioButton的状态用于往返
本人刚学,并自学,希望得到您的帮助,谢谢

解决方案 »

  1.   

    你的RadionButton是在同一个组里面吗
    <asp:RadioButton GroupName="rdgroup1" ID="rd1" runat="server" />
         <asp:RadioButton GroupName="rdgroup1" ID="rd2" runat="server" />
      

  2.   

    放在一个容器里,容器里的所有RadioButton只有一个能为TURE
      

  3.   

    是的放在一个容器里 比如同放在 GroupName = xxx ,这个没问题,两个按钮可以正常单选
      

  4.   

    我以前也不知道,自己找到的,可以用,但不知道好不好。
    楼主把2个Radiobutton设在一个组即可,就是在2个控件的属性的groupname 里输入同一个值
      

  5.   

    对的,就是楼上那个意思否则,搂主可以写代码:
    private void CheckBox1_Checked(注意:这是个事件)
    {
        this.CheckBox2.Checked = !this.CheckBox1.Checked;
    }private void CheckBox2_Checked
    {
        this.CheckBox1.Checked = !this.CheckBox2.Checked;
    }
      

  6.   

    是在同一个组,就是RadioButton往返总是保持默认状态
    我追踪查看html源文件,发现是这个问题
    第一次按下Button1 html的RadioButton1 checked = checked,2 没有
    第二次选中2 click后,html的RadioButton1 checked = (还是)checked,而 2 还是没有checked
      

  7.   


    这里呢,是想button click事件,为了让RadioButton能达到自己要求的往返,是否真的还需要再给RadioButton写个事件呢
    我感觉这只是很简单的应用,难道非这么曲折么
    还有,我刚学C#,感觉用C#实现一个需要,需要书写的代码比较多
    不知道大家是否也这样,望大家推荐一本好书,我买的几本书不敢恭维,基本就算是让你明白doNet和C#是什么东东的意思
    笼统的很
      

  8.   

    搂主是在:Click事件里面做的那些判断吗?如果是的话,建议使用CheckedChanged事件
      

  9.   

    噢,搂主是不是没有设置控件的AutoPostBack属性?我这里是正常的:
    protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
    {
        if (this.RadioButton1.Checked)
        {
            Response.Write("RadioButton1被选中了");
        }
        else if (this.RadioButton2.Checked)
        {
            Response.Write("RadioButton2被选中了");
        }
    }
    protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
    {
        if (this.RadioButton1.Checked)
        {
            Response.Write("RadioButton1被选中了");
        }
        else if (this.RadioButton2.Checked)
        {
            Response.Write("RadioButton2被选中了");
        }
    }
      

  10.   

    LZ你好! 其实我个人感觉,相比java 用C#开发一些功能一般的应用程要远比java要迅速,C#已经把好多东西给封装好了,开发者只要调用就好,会省不少代码
     当然企业级开发是好多控件都是自己公司做的,但是却可以实现一次编写,多次使用,一劳永逸
    你可以找一些介绍C#短期 入门、速成方面的书籍,知识当然不容易速成,但是可以快速了解这种知识的大体,和基础知识,个人认为还比较好
      

  11.   

    首先谢谢您
    这个例子,只是想用button_click事件,而不想用任何RadioButton事件的,详细的描述一下
    就是下面这样一个文本框(TextBox1)一对单选按钮在同一组(RadioButton1 ,RadioButton2) 一个按钮(button1)当按下button1 触发事件 (事件的过程在1楼)
    就是想这样一个简单的过程,而不想要其他控件有触发事件这个应用比如在搜索功能上,应该能经常遇到的,虽然我在学习而不是实际应用,但还是想搞明白控件如何设置,回发保持状态,和更简练有效的代码使用控件
      

  12.   

    to 16楼 moluotuo 谢谢您,您的每个字对于我来说都很有收获,祝好!!
      

  13.   

    如果搂主要用一个按钮单击,然后在单击事件里判断的话,是可以的
    只要设置两个RedioButton的AutoPostBack属性为true即可
      

  14.   

    开始我还以为搂主使用的是RadioButton的Click事件呢,所以建议使用CheckedChanged事件
    因为RadioButton是没有Click事件的
      

  15.   

    不知道搂主是怎么搞得
    设置好这俩控件的属性以后,我这里是可以的:
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (this.RadioButton1.Checked)
        {
            Response.Write("RadioButton1被选中了");
        }
        else if (this.RadioButton2.Checked)
        {
            Response.Write("RadioButton2被选中了");
        }
    }
      

  16.   

    HeHe 我发现了点点不同,
    就是你用 if (this.RadioButton1.Checked)
    而我用 if (RadioButton1.Checked = ture)
    但就当前感觉不是你我代码不同的问题,我试下您的代码
    谢谢您,我是一个相当麻烦的人,不好意思了
      

  17.   

    to net5i问题确实如你我代码所示不同那样
    我的 RadioButton1.Checked = ture 的问题
    用您的就好了,虽然还不明白咱俩代码之间的区别,但结果您的是正确的看来我还要去搞明白下这两种写法的不同之处,和我错误的原因
    非常谢谢您的帮助,祝您顺利!!
      

  18.   

    LZ RadioButton1.Checked = ture 
    应当是 == 不是=
    是比较不是赋值哦
    另外 “==True”可以不要,因为RadioButton1.Checked 执行的结果就是一个Bool类型
      

  19.   

    我晕倒,既然搂主是少个=号,那搂主就别写这句话嘛:
    “以上代码不是复制源代码,如有字符敲错不必讨论这个错”偶们还以为没有等号是搂主在CDSN里面敲错的呢