你可以直接用datagrid的选择列,也可以用代码来添加一个选择列

解决方案 »

  1.   

    什么意思?
    是不是要加一个模板列(checkbox)?
      

  2.   

    选择列
    <asp:ButtonColumn Text="选择" CommandName="Select"></asp:ButtonColumn>要求动态增加
      

  3.   

    设计时,用模板列绑定
    <asp:TemplateColumn>
       <ItemTemplate>
    <asp:CheckBox ID="select" Runat="server" Checked="False"></asp:CheckBox>
       </ItemTemplate>
    </asp:TemplateColumn>
    运行时,在DataGrid的ItemCreated事件中动态增加。
      

  4.   

    Creating Templates Programmatically in the DataGrid Control
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingtemplatesprogrammaticallyindatagridcontrol.asp
      

  5.   

    解决了,怎么自己不可以给自己分啊。呵呵....
    TemplateColumn tc2 = new TemplateColumn();
    tc2.ItemTemplate = new DataGridTemplate(ListItemType.SelectedItem,"选择列");
    base.Columns.AddAt(0,tc2);
    ....

    public class DataGridTemplate : ITemplate
    {

    ListItemType templateType;
    string columnName;
       
    public DataGridTemplate(ListItemType type, string colname)
    {
    templateType = type;
    columnName = colname;
    } public void InstantiateIn(System.Web.UI.Control container)
    {
    Literal lc = new Literal();
    switch(templateType)
    {
    case ListItemType.Header:
    case ListItemType.SelectedItem:
    //添加一个可选择模板列
    //HyperLink hl = new HyperLink();
    LinkButton lb = new LinkButton();
    lb.Text = "选择";
    lb.CommandName = "Select";
    container.Controls.Add(lb);
    break;
    case ListItemType.EditItem:
    TextBox tb = new TextBox();
    tb.Text = "";
    container.Controls.Add(tb);
    break;
    case ListItemType.Footer:
    lc.Text = "<I>" + columnName + "</I>";
    container.Controls.Add(lc);
    break;
    }
    }