name要一样,ID值设置成不一样就可以了!

解决方案 »

  1.   

    换成Checkbox控件,在后台写程序吧
      

  2.   

    你可以用客户端的RadioButton,name一样就可以拉
      

  3.   

    所有RadioButton.GroupName="相同的值";---将他们放在一个组群中
      

  4.   

    我是在Templete列中加上RadioButton,然后设DataSource,这样整个列都是RadioButton了,但是整个一列中的所有RadioButton都能同时选中,我现在想控制这个列,让这一列中的所有RadioButton只能选中一个,请问这个控制怎么做?
      

  5.   

    或者在模板中属性GroupName="相同的值"
      

  6.   

    用客户端的RadioButton,name一样就可以拉
    不要用服务器端的
      

  7.   

    模板中属性GroupName的值只有一个
      

  8.   

    为什么一定要用服务端的呢?下面是绑定的代码:
    <asp:TemplateColumn>
    <HeaderTemplate>
    选择
    </HeaderTemplate>
    <ItemTemplate>
    <input id="rdSelect" type="radio" name="rdSelect" value='<%#DataBinder.Eval(Container.DataItem, "ObjectID")%>' >//这里的ObjectID可以换成你想要的东东.
    </ItemTemplate>
    </asp:TemplateColumn>在后台中应用int aObjectID = int.Parse(Request.Params["rdSelect"]);如果Request.Params["rdSelect"] == null则表示没有任何行被选中.
      

  9.   

    取出的aObjectID,就是你绑定在<input value中的ObjectID
      

  10.   

    非常感谢各位的帮忙,但是我必须用WEBFORM的控件
      

  11.   

    用服务端控件也可以实现,只不过对性能来讲是一种损失.如
    //定义事件==为绑定在Grid1中的RadioButton加上
    private void rbSelect_CheckedChanged(object sender ,EventArgs e)
    {
      for (int i = 0 ; i < Grid1.Items.Count; i++)
     {
       if (Grid1.Items[i].FindControl("rdSelect") != null)
       {
          if (Grid1.SelectedIndex != i)
          {
             ((RadioButton)Grid1.Items[i].FindControl("rdSelected")).Checked = false; 
          }
       } 
     }
    }//在DataGrid1的ItemCreated事件中,为RadioButton加上事件处理private void DataGrid1_ItemCreated(object sender,DataGridItemEventArgs e)
    {
       if (e.Item.FindControl("rdSelect") != null)
       {
          ((RadioButton)e.Item.FindControl("rdSelect")).CheckedChanged += new EventHandler(this.Grid1_CheckedChanged);
       }
    }
      

  12.   

    上面代码未经测试,大体道差不多,下面是测试后的代码 private void rbTest_CheckedChanged(object sender, System.EventArgs e)
    {

    for (int i = 0; i < DataGrid1.Items.Count; i++)
    {
    if (DataGrid1.Items[i].FindControl("rbTest") != null)
    {
    if (int.Parse(((RadioButton)sender).Attributes["Index"]) != i)
    {
    ((RadioButton)DGridFlow.Items[i].FindControl("rbTest")).Checked = false;
    }
    }
    }
    } private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.FindControl("rbTest") != null)
    {
    ((RadioButton)e.Item.FindControl("rbTest")).CheckedChanged += new EventHandler(rbTest_CheckedChanged);
    ((RadioButton)e.Item.FindControl("rbTest")).Attributes["Index"] = e.Item.ItemIndex.ToString();
    }
    }
      

  13.   

    将该TEMPLETE列里贴一个LABEL,命名为LBLRAD,.TEXT=""
    .VB文件代码如下:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If Not Me.IsPostBack Then
                DataGrid1.DataSource = CreateData()
                DataGrid1.DataBind()
            End If
            Call SaveRadState()
        End SubCreateData略Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound        If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Or _
               e.Item.ItemType = ListItemType.SelectedItem Then
                Dim myLbl As Label
                myLbl = e.Item.FindControl("lblRad")
                myLbl.Text = "<input type=radio name='myradiogroup' value=" & CStr(e.Item.ItemIndex) & ">"
            End If        'If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
            '    Dim myLbl As Label
            '    myLbl = e.Item.FindControl("lblRad")
            '    myLbl.Text = "<input type=radio name='myradiogroup' value=" & CStr(e.Item.ItemIndex) & ">"
            'End If
        End Sub    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim str As String
            Dim lItem As DataGridItem        str = Request.Form("myradiogroup")        If str Is Nothing Then Exit Sub        Me.TextBox1.Text = "select row:" + str
                   
        End Sub    Private Sub SaveRadState()
            Dim str As String
            Dim lItem As DataGridItem        str = Request.Form("myradiogroup")        If str Is Nothing Then Exit Sub        For Each lItem In DataGrid1.Items
                If lItem.ItemType = ListItemType.AlternatingItem Or lItem.ItemType = ListItemType.Item Or _
                   lItem.ItemType = ListItemType.SelectedItem Then
                    Dim myLbl As Label
                    myLbl = lItem.FindControl("lblRad")
                    If myLbl.Text.IndexOf(str) > 0 Then
                        myLbl.Text = "<input type=radio name='myradiogroup' value=" & CStr(lItem.ItemIndex) & " checked>"
                    Else
                        myLbl.Text = "<input type=radio name='myradiogroup' value=" & CStr(lItem.ItemIndex) & ">"
                    End If
                End If
            Next
        End Sub另为,我的DATAGRID共四列:第一列:CHECKBOX,第二列:RADIOBUTTON,第三列:LINK,第四列:普通列
      

  14.   

    原来放RADIOBUTTON的TEMMPLETE列只要放一个LABEL即可,不需再放RADIOBUTTON