我在repeater里面绑定了一个RadioButton和其他几项数据,格式大概为这样:
<asp:repeater id=“rep” runat="server">
<itemTemplate>
<TD > <asp:RadioButton ID="RadioButton1" runat="server"  AutoPostBack="true" GroupName="1" OnCheckedChanged="changed"/></TD>
     <TD ><%# DataBinder.Eval(Container.DataItem,"geneStep") %></TD>
     <TD ><%# DataBinder.Eval(Container.DataItem,"ProfessionKind") %></TD>
     <TD ><%# DataBinder.Eval(Container.DataItem,"air") %></TD>
     <TD ><%# DataBinder.Eval(Container.DataItem,"water") %〉</TD>
     <TD ><%# DataBinder.Eval(Container.DataItem,"product") %></TD>
</itemTemplate>
</asp:repeater>
我想达到的目的是:在数据库中将数据提出来之后,假如有10条纪录,每个记录前都应该有一个RadioButton是吧,当点击任何一个RadioButton后,自动将本条记录中的其他字段的值(geneStep、ProfessionKind等的值)传出来,然后它的Check=true,也就是说:自动提交到服务器之后哪个RadioButton选中的还是选中的,没选中还是没选中。
   现在我做的是:提取出数据之后,点击任何一个RadioButton都可以,就是说只能选中,不能取消。在RadioButton的OnCheckChanged事件里将repeater重新绑定之后,每次点击RadioButton之后,由于重新提交到服务器,所以每个RadioButton又都不是选中的了。
怎么达到我上面说的那样啊?
   请大家帮忙,谢谢了。

解决方案 »

  1.   

    就是说只能选中,不能取消。
    -----------------------------
    不要使用RadioButton,使用CheckBox就好了
      

  2.   

    由于重新提交到服务器,所以每个RadioButton又都不是选中的了。
    ---------------------------------
    应该不会,ASP.NET自动会保存状态的,除非你重新绑定了你的repeater。
      

  3.   

    就是说只能选中,不能取消。
    -----------------------------
    不要使用RadioButton,使用CheckBox就好了
    ------------------------------------------
    只能用RadioButton,因为想达到但选的效果。
      

  4.   

    由于重新提交到服务器,所以每个RadioButton又都不是选中的了。
    ---------------------------------
    应该不会,ASP.NET自动会保存状态的,除非你重新绑定了你的repeater。
    -------------------------------------------------------------------
    是又重新绑定了阿,否则的话虽然就会出现所有的RadioButton都能选中,而且不能取消的问题。
      

  5.   

    你的意思是你的repeater列表中所有行记录只能选择1行是吗?
      

  6.   

    是又重新绑定了阿,否则的话虽然就会出现所有的RadioButton都能选中,而且不能取消的问题。
    --------------------------
    你不会是说GroupName一样出现多选现象吧???估计是OnCheckedChanged代码问题
      

  7.   

    把你绑定代码和OnCheckedChanged代码贴出来看看
      

  8.   

    用ViewState来保存选中的那个RadioButton的相关信息,重新载入的时候,提取ViewState值判断是否要选中
      

  9.   

    //OnCheckedChange代码,里边的就是绑定代码。
    protected void Bind(object sender, EventArgs e)
            {   //绑定代码,我想选中一条记录之后将值取出来,但是不知道怎么去,所以就将绑定代码先写上了。
                string s = "select * from auto where ProfessionKind='废弃物焚烧'";
                SqlConnection con = thelog.creatCon();
                con.Open();
                SqlDataAdapter adr = new SqlDataAdapter(s, con);
                DataSet ds = new DataSet();
                adr.Fill(ds);
                this.repAuto.DataSource = ds;
                this.repAuto.DataBind();
            }
    //
      

  10.   

    如果不重新绑定的话,那么就是GropName一样,但是可以多选,就是这种现象。应该怎么解决啊?
    我的GroupName都是“1”,是在HTML里写的。上面写RadioButton的时候有啊。
      

  11.   

    我这里试了GropName一样不可以多选啊
      

  12.   

    你这个Bind方法在哪个事件里绑定的Page_Load?
      

  13.   

    不是吧,我的Bind方法是在RadioButton的OnCheckChanged事件里写的。
      

  14.   

    我刚才又试了试, 如果重新绑定的话,就会没有选中的RadioButton,而如果不绑定的话,就会出现多选的现象。
    该怎么办啊?
    ---------------------
    对,还有另外一个问题,就是如果选中了一项,该怎么把选中的那条记录的值给取出来啊?
      

  15.   

    重新绑定数据的时候,
    在Repeater的ItemDataBound事件中,决定哪个RadioButton选中
      

  16.   

    JGood 请问:重新绑定数据的时候决定哪个选中该怎么做啊?我是初学,还请多多帮助。