以编程方式将CheckBoxes的TemplateColumn添加到DataGrid

在我的代码隐藏过程中,我试图用
autoGenerateColumns = true
创建一个DataGrid:
            DataGrid NewDg = new DataGrid();
            NewDg.AutoGenerateColumns = true;
            NewDg.Width = Unit.Percentage(100.00);
            NewDg.DataSource = ds;
            NewDg.DataBind(); 
我还需要在此Grid中添加另一列(可能是
TemplateColumn
)CheckBoxes。 你知道怎么做吗?? 我试过了:
               TemplateColumn t = new TemplateColumn();
            CheckBox c = new CheckBox();
            t.ItemTemplate = (ITemplate)c;
            NewDg.Columns.Add(t);
我得到以下异常跟踪:
System.InvalidCastException: Unable to cast object of type 'System.Web.UI.WebControls.CheckBox' to type 'System.Web.UI.ITemplate'. at Default2.DataGrid1_ItemDataBound(Object sender, DataGridItemEventArgs e) in c:UserssaherDocumentsTreeTestTreeDemoDefault2.aspx.cs:line 116 at System.Web.UI.WebControls.DataGrid.OnItemDataBound(DataGridItemEventArgs e) at System.Web.UI.WebControls.DataGrid.CreateItem(Int32 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource) at System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource) at System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) at System.Web.UI.WebControls.BaseDataList.DataBind() at Default2.BindData() in c:UserssaherDocumentsTreeTestTreeDemoDefault2.aspx.cs:line 44 
    
已邀请:
您需要将复选框添加到模板容器中,而不是转换为模板容器。 这是一篇关于动态添加模板的文章: http://msdn.microsoft.com/en-us/library/aa712868(VS.71).aspx     
如果此附加列始终存在,是否有理由不能在设计视图中将其添加到网格而不是代码?或者仅在某些条件下显示? 如果没有,您可以在设计视图中指定附加列,并让autoGenerateColumns在运行时添加其余列。     
你需要在代码隐藏中创建吗?如果是这样,请访问http://msdn.microsoft.com/en-us/library/system.web.ui.templatebuilder.aspx。否则你可以声明为:
<asp:DataGrid id="MyGrid" runat="server">
    <Columns>
        <asp:TemplateColumn>
            <HeaderTemplate><b>Check Me!</b></HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox runat="server" />
            </ItemTemplate>
        </asp:TemplateColumn>
    </Columns>    
</asp:DataGrid>
    

要回复问题请先登录注册