1.模板里的控件必须在html里手动添加,click事件会触发datagrid的itemcommand事件,在itemcommand里判断是那个RadioButton触发的。
2.<asp:RadioButton id="Rb_select" runat="server" GroupName="Rb_oper">
</asp:RadioButton>
改为:
<asp:RadioButtonList id="Rb_select" runat="server" GroupName="Rb_oper">
<asp:listitem>各项在这里添加</asp:listitem>
</asp:RadioButtonList>

解决方案 »

  1.   

    chyich,谢谢。
     我还有问题,你把RadioButton改成RadioButtonList控件,你说<asp:listitem>各项在这里添加</asp:listitem>,但是我是从数据库里检索出来的数据,我应该怎么控制呢?
      

  2.   

    模板列是不是需要手动在HTML中加的,在WEBFORM中可以通过一些窗口和属性页来添加。而且在相应的属性页中可以添加控件的事件。而且很方便的。
      

  3.   

    绑定数据源到RadioButtonList控件里就不用手工添加了。
    给你一个例子:
    <asp:RadioButtonList id="cbl_check_state" Runat="server" RepeatDirection="Horizontal" RepeatColumns="10" Width="100%" TextAlign="Right" CellSpacing="1" CellPadding="1" AutoPostBack="True" OnSelectedIndexChanged="cbl_check_state_SelectedIndexChanged"></asp:RadioButtonList>cs文件代码:cbl_check_state.DataSource=ds_check_state.Tables["ty_check_state"].DefaultView;
    cbl_check_state.DataTextField="vc_state_name";
    cbl_check_state.DataValueField="int_state_id";
    cbl_check_state.DataBind();
      

  4.   

    Aaron_Lau,我是用usercontrol的,我在datagrid里添加了模板列没有找到为该模板列添加控件和事件的地方,你能说的更详细一点吗?
     chyich,你给的代码是直接跟RadioButtonList控件绑定了吧?没有通过datagrid吧?我要显示的是好多列(但没有含全部列),是想通过选中一行然后获取这一行的主键(我让主键列不可见了),然后根据主键对这条记录进行修改或删除操作。请你继续帮我忙,谢谢
      

  5.   

    模板列的RadioButton的click事件好像不能触发datagrid的itemcommand事件。
    我试了怎么不能触发?
      

  6.   

    你可以在Commandname中写出命令的名称以及参数,然后在DataGrid的ItemCommand事件中捕获这个事件。如:
    private void DataGrid_ItemCommand(Object source, .......e)
    {
       if(e.CommandName == "CommandName")
         { 
            your code ;
          }
    }
      

  7.   

    但是Commandname的属性只有ButtonColumn有啊,模板列中的RadioButton没有啊。望指点。
      

  8.   

    如果RadioButtonList控件和datagrid控件用的是同一数据源,你这样绑定就可以了:
    <asp:RadioButtonList id="cbl_check_state" Runat="server" RepeatDirection="Horizontal" RepeatColumns="10" Width="100%" TextAlign="Right" CellSpacing="1" CellPadding="1" AutoPostBack="True" OnSelectedIndexChanged="cbl_check_state_SelectedIndexChanged"
    DataValueField='<%# DataBinder.Eval(Container.DataItem, "字段名") %> ' DataTextField='<%# DataBinder.Eval(Container.DataItem, "字段名") %> '></asp:RadioButtonList>
      

  9.   

    chyich,你的RadioButtonList不是作为模板列存在的?你是控制它和DataGrid中的记录保持在同一个水平上的吗?
      

  10.   


    <asp:TemplateColumn HeaderText="选择">
           <ItemTemplate>
    你把它放在这里不就在模板列里吗?
    </ItemTemplate>
       </asp:TemplateColumn>
      

  11.   

    我是按你说的做了,不过说没有SelectedIndexChanged事件,我才问你是不是RadioButtonList不是作为模板列存在的,我应该怎么样添加这个事件啊?双击触发的是DataGrid的itemcommon事件。我看了.net自带的帮助,好像只有button才有CommonName属性,这个时候才可以设置CommonName="select",是不是RadioButton就做不到那?应该不会才对啊,望大家继续帮忙
      

  12.   

    大哥们,不行啊,总是出现js错误:
    我全部的代码在下面:
    <html>
    <head>
    <script language="javascript">
    function checkData()
    {
     alert("aasd");
    return false;
    }<script language="VB" runat="server">
            
            sub Page_Load()        
             Button1.Attributes.Add("onClick", "javascript:return checkData();")
            End Sub
            
            Sub ValidateBtn_Click(sender As Object, e As EventArgs) 
                          If (Page.IsValid) Then
                   lblOutput.Text = "页面有效!" 
               Else
                   lblOutput.Text = "在页面中不能出现空项!"
               End If
                   
            End Sub
    </script>
    <form runat="server">
    <title>表单验证</title>
    <center>   
     <table bgcolor="white" cellpadding=10 border=1>
        <tr valign="top">
          <td colspan=3>
            <asp:Label ID="lblOutput" Text="请填写下面的内容" ForeColor="red" Font-Name="Verdana" Font-Size="10" runat=server /><br>
          </td>
        </tr>
        
        <tr>
          <td align=right>
            <font face=Verdana size=2>卡号:</font>
          </td>
          <td>
            <ASP:TextBox id=TextBox1 runat=server />
          </td>
         
        </tr>
          <td>    
        <tr>
          <td>&nbsp;</td>
          <td>
            <ASP:Button id=Button1 text="验证" OnClick="ValidateBtn_Click" runat=server />
          </td>
          <td>&nbsp;</td>
        </tr>
        </table>
    </center>
    </form>