Hinzufügen TemplateColumn der Kästchen, um die DataGrid programmgesteuert
in meiner Prozedur in der code-behind-ich bin versucht, erstellen Sie ein DataGrid mit autoGenerateColumns = true
:
DataGrid NewDg = new DataGrid();
NewDg.AutoGenerateColumns = true;
NewDg.Width = Unit.Percentage(100.00);
NewDg.DataSource = ds;
NewDg.DataBind();
Muss ich auch eine weitere Spalte hinzufügen (TemplateColumn
vielleicht) von Kontrollkästchen, um das Raster.
Weißt du wie das geht??
Ich habe das ausprobiert:
TemplateColumn t = new TemplateColumn();
CheckBox c = new CheckBox();
t.ItemTemplate = (ITemplate)c;
NewDg.Columns.Add(t);
Bekomme ich die folgende exception trace:
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:\Users\saher\Documents\TreeTest\TreeDemo\Default2.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:\Users\saher\Documents\TreeTest\TreeDemo\Default2.aspx.cs:line 44
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die checkbox, um Ihre template-container anstelle von casting zu.
Hier ist ein Artikel über das hinzufügen von templates dynamisch:
http://msdn.microsoft.com/en-us/library/aa712868(VS.71).aspx
Wenn diese zusätzliche Spalte ist immer vorhanden, gibt es einen Grund, warum Sie können ' T fügen Sie das raster in der Entwurfsansicht im Gegensatz zu code? Oder ist es nur unter bestimmten Bedingungen?
Wenn nicht, können Sie die zusätzliche Spalte in der design-Ansicht und die autoGenerateColumns-fügen Sie den rest der Spalten zur Laufzeit.
Tun, die Sie haben, um es im code-behind? Wenn ja check-in http://msdn.microsoft.com/en-us/library/system.web.ui.templatebuilder.aspx. Sonst kann man es erklären, als: