模板列:
<asp:DataGrid id=DataGrid1 style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" Width="424px" Height="280px">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="aaa" Runat="server"></asp:CheckBox> 
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
      

  2.   

    前面他们说了用模板列,这里具体给你说一下模版列吧:模版列
     
    可以自行决定要在列中显示哪些控件(一个或多个),以及这些控件要绑定哪些字段。
    加入模版列的按钮会将其click事件反升到DataGrid1_ItemCommand事件,但要判断CommandName
    编辑模版\里、直接把控件拖进去即可。
     
    注意   如果您调用了父控件(DataList、Repeater 或 DataGrid 控件)的 DataBind 方法,ItemCommand 事件将不会发生,原因是父控件的内容已经重置。因此,您通常不需要在每次往返时调用 DataBind 方法(即在初始化页时无需检查发回)。
     
     
    <asp:TemplateColumn> <HeaderTemplate>
     <FONT face="宋体">模板列</FONT>   //表头
     </HeaderTemplate> <ItemTemplate>       
      <asp:ImageButton id="ImageButton1" runat="server" ImageUrl="D:\img\image\button_add.gif">
        </asp:ImageButton>
     </ItemTemplate>
       
      <EditItemTemplate>
        //这一行是当选择编辑按钮时,显示的控件或文本
      </EditItemTemplate>
    </asp:TemplateColumn>
     
     
    得到模版列中控件的值(DataGrid1_ItemCommand事件中)
       DropDownList listctr=(DropDownList)e.Item.FindControl("DropDownList2");
       string s=listctr.SelectedValue;
        CheckBox box=(CheckBox)e.Item.FindControl("CheckBox1");
       bool b=box.Checked;为DataGrid添加CheckBox控件CheckBoxDataGrid.aspx <%@ Page Language="vb" AutoEventWireup="false" Codebehind="CheckBoxDataGrid.aspx.vb"
     Inherits="aspxWeb.CheckBoxDataGrid" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
      <HEAD>
        <title>为DataGrid添加CheckBox控件的例子</title>
        <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
        <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
        <meta name="vs_defaultClientScript" content="javascript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5";>
      </HEAD>
      <body MS_POSITIONING="GridLayout">
        <form id="frmMain" method="post" runat="server">
          <asp:DataGrid id="dgMain" runat="server" Width="98%" AutoGenerateColumns="False">
            <SelectedItemStyle Font-Size="9pt" Font-Names="宋体"></SelectedItemStyle>
            <EditItemStyle Font-Size="9pt" Font-Names="宋体" Font-Bold="True" ForeColor="Red" BackColor="Info"/>
            <AlternatingItemStyle Font-Size="9pt" Font-Names="宋体" ForeColor="ControlText" BackColor="White"/>
            <ItemStyle Font-Size="9pt" Font-Names="宋体" ForeColor="ControlText" BackColor="WhiteSmoke"/>
            <HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="Black"
             VerticalAlign="Middle" BackColor="Control">
            </HeaderStyle>
            <Columns>
              <asp:TemplateColumn HeaderText="操作">
                <HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
                <ItemTemplate>
                  <asp:CheckBox ID="chkExport" Runat="server" />
                </ItemTemplate>
                <EditItemTemplate>
                  <asp:CheckBox ID="chkExportON" Runat="server" Enabled="true" />
                </EditItemTemplate>
              </asp:TemplateColumn>
              <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="序号">
                <HeaderStyle Width="50px"></HeaderStyle>
              </asp:BoundColumn>
              <asp:TemplateColumn SortExpression="demo" HeaderText="标题">
                <ItemTemplate>
                  <asp:Label Text='<%# Server.HTMLEncode(DataBinder.Eval(Container.DataItem, "Title"))%>'
                    runat="server"Width="80%" ID="lblColumn"/>
                </ItemTemplate>
              </asp:TemplateColumn>
            </Columns>
          </asp:DataGrid>
          <asp:Button id="cmdSelectAll" runat="server" Text="全部选中"></asp:Button>
          <asp:Button id="cmdFindSelected" runat="server" Text="查看选中的项目"></asp:Button>
          <br>
          <asp:Label id="Label1" runat="server"></asp:Label>
        </form>
      </body>
    </HTML>后代码 CheckBoxDataGrid.aspx.vbImports System.Data
    Imports System.Data.OleDbPublic Class CheckBoxDataGrid
      Inherits System.Web.UI.Page
      Protected WithEvents cmdSelectAll As System.Web.UI.WebControls.Button
      Protected WithEvents dgMain As System.Web.UI.WebControls.DataGrid
      Protected WithEvents cmdFindSelected As System.Web.UI.WebControls.Button  Dim oDataView As DataView
      Protected WithEvents Label1 As System.Web.UI.WebControls.Label
      Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="_
       + Server.MapPath("Test.mdb")
    #Region " Web Form Designer Generated Code "  'This call is required by the Web Form Designer.
      <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()  End Sub  Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs)_
       Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
      End Sub#End Region  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_
       Handles MyBase.Load
        'Put user code to initialize the page here
        dgMain.Columns(0).HeaderText = "选项"
        dgMain.Columns(1).HeaderText = "序号"
        dgMain.Columns(2).HeaderText = "标题"
        cmdFindSelected.Text = "查看选中的项目"
        RefreshGrid()
        If Not Page.IsPostBack Then
          cmdSelectAll.Text = "全部选中"
          dgMain.DataBind()
        End If  End Sub
    #Region "处理多选"
      Private Sub cmdSelectAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
       Handles cmdSelectAll.Click
        selectAll()
      End Sub  Private Sub selectAll()
        Dim oDataGridItem As DataGridItem
        Dim chkExport As System.Web.UI.WebControls.CheckBox    If cmdSelectAll.Text = "全部选中" Then
          For Each oDataGridItem In dgMain.Items
            chkExport = oDataGridItem.FindControl("chkExport")
            chkExport.Checked = True
          Next
          cmdSelectAll.Text = "全部不选"
        Else
          For Each oDataGridItem In dgMain.Items
            chkExport = oDataGridItem.FindControl("chkExport")
            chkExport.Checked = False
          Next
          cmdSelectAll.Text = "全部选中"
        End If
      End Sub
    #End Region#Region "更新DataGrid"  Private Sub RefreshGrid()
        Dim oConnection As OleDbConnection
        Dim oCommand As OleDbDataAdapter
        Dim oDataSet As New DataSet()    Try
          Dim sSQL As String = "Select top 5 * from TestTable order by id"
          oConnection = New OleDbConnection(sConnectionString)
          oCommand = New OleDbDataAdapter(sSQL.ToString, oConnection)
          oCommand.Fill(oDataSet, "TestTable")
          oDataView = New DataView(oDataSet.Tables("TestTable"))
          dgMain.DataSource = oDataView
          oConnection.Close()    Catch ex As Exception
          '// Place Error Handling here
        End Try
      End Sub
    #End Region  Private Sub cmdFindSelected_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
       Handles cmdFindSelected.Click
        Dim oDataGridItem As DataGridItem
        Dim chkExport As System.Web.UI.WebControls.CheckBox
        Dim oExArgs As New System.Collections.ArrayList()
        Dim sID As String
        Label1.Text = ""
        For Each oDataGridItem In dgMain.Items
          chkExport = oDataGridItem.FindControl("chkExport")
          If chkExport.Checked Then
            Label1.Text = ""
            sID = CType(oDataGridItem.FindControl("lblColumn"), Label).Text
            oExArgs.Add(sID)
            Dim i As Integer = 0
            For i = 0 To oExArgs.Count - 1
              Label1.Text += oExArgs(i) + ","
            Next
          End If
        Next
      End SubEnd Class
      

  3.   

    利用摸板列
    litp(天道酬勤) 的方法就可以
      

  4.   

    <asp:TemplateColumn HeaderText="删除">
    <HeaderStyle Width="34px"></HeaderStyle>
    <ItemTemplate>
    <asp:CheckBox id="cb" runat="server" onclick="if (this.checked != true) form1.cbAll.checked = false;"></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>