Super Andre! Ich denke wenn man jetzt hingehen w�rde und einige WebControls z.b. Radiobutton Noch als ColumnsTemplate definiert sollte man in der Lage sein viele DataGrids ohne irgend eine Zeile in der aspx Seite vollst�ndig on the fly zu generieren.
J�rg -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Andre Seifert Sent: Thursday, February 20, 2003 4:04 PM To: [EMAIL PROTECTED] Subject: AW: [Asp.net] DataGrid Item Template dynamisch erzeugen Habe jetzt nochmal, weil es mich auch interessiert, das DataBinding mit in dieser Klasse erm�glicht. Als Spalte habe ich in meiner SQL Server Tabelle eine vom Typ "Bit". Den Spaltennamen einfach als 2. Parameter im Konstruktor angeben, und schon wird die Checkbox datengebunden. Code f�r die Klasse CheckBoxColumn: ========================================================== public class CheckBoxColumn : ITemplate { string columnID; string columnBindField; public CheckBoxColumn(string colID, string colBindField) { columnID = colID; columnBindField = colBindField; } public void InstantiateIn(Control container) { CheckBox myCheckBox = new CheckBox(); myCheckBox.ID = columnID; myCheckBox.DataBinding+=new EventHandler(this.BindCheckBoxColumn); container.Controls.Add(myCheckBox); } public void BindCheckBoxColumn(object sender, EventArgs e) { CheckBox cbControl = (CheckBox)sender; DataGridItem container = (DataGridItem)cbControl.NamingContainer; int i =container.DataSetIndex; bool t = false; try { t = bool.Parse(((DataRowView)container.DataItem).Row[columnBindField].ToStri ng().Trim()); } catch { t=false; } cbControl.Checked = t; } } andre.seifert @xmmm.de >-----Urspr�ngliche Nachricht----- >Von: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED]] Im Auftrag von Joerg Uth >Gesendet: Donnerstag, 20. Februar 2003 13:35 >An: [EMAIL PROTECTED] >Betreff: RE: [Asp.net] DataGrid Item Template dynamisch erzeugen > > >Danke das ist ja mal ein guter Ansatz auf den ich bauen kann > >J�rg > >-----Original Message----- >From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED]] On Behalf Of Andre Seifert >Sent: Thursday, February 20, 2003 1:21 PM >To: [EMAIL PROTECTED] >Subject: AW: [Asp.net] DataGrid Item Template dynamisch erzeugen > > >Ich habs mal nachvollzogen... >Wichtig ist die Klasse unten (CheckBoxColumn), die die >Schnittstelle ITemplate implementiert. > >hier ein Beispiel mit CheckBox und Label. > >in der DataGridDynamicTemplate.aspx liegt nur ein DataGrid (DataGrid1). > >DataGridDynamicTemplate.aspx.cs >====================================================== > >using System; >using System.Collections; >using System.ComponentModel; >using System.Data; >using System.Data.SqlClient; >using System.Drawing; >using System.Web; >using System.Web.SessionState; >using System.Web.UI; >using System.Web.UI.WebControls; >using System.Web.UI.HtmlControls; > >namespace testSuite >{ > public class DataGridDynamicTemplate : System.Web.UI.Page > { > protected System.Web.UI.WebControls.DataGrid DataGrid1; > > private void Page_Load(object sender, System.EventArgs >e) > { > TemplateColumn tc = new TemplateColumn(); > tc.ItemTemplate = new >CheckBoxColumn("cb","myCB"); > > DataGrid1.Columns.Add(tc); > SqlConnection conn1 = new >SqlConnection("Server=DBSERVER;User Id=USERNAME;Password=PWD;Initial >Catalog=PASSWORD"); > SqlDataAdapter adp1 = new SqlDataAdapter("SELECT >* FROM bpd_produkte",conn1); > DataSet ds = new DataSet(); > conn1.Open(); > adp1.Fill(ds); > DataGrid1.DataSource=ds; > DataGrid1.DataBind(); > } > > #region Web Form Designer generated code > override protected void OnInit(EventArgs e) > { > // > // CODEGEN: Dieser Aufruf ist f�r den ASP.NET >Web Form-Designer erforderlich. > // > InitializeComponent(); > base.OnInit(e); > } > > /// <summary> > /// Erforderliche Methode f�r die Designerunterst�tzung. > > /// Der Inhalt der Methode darf nicht mit dem >Code-Editor ge�ndert werden. > /// </summary> > private void InitializeComponent() > { > this.Load += new >System.EventHandler(this.Page_Load); > > } > #endregion > } > public class CheckBoxColumn : ITemplate > { > string columnID; > string columnBindField; > > public CheckBoxColumn(string colID, string colBindField) > { > columnID = colID; > columnBindField = colBindField; > } > > public void InstantiateIn(Control container) > { > CheckBox myCheckBox = new CheckBox(); > Label lb = new Label(); > lb.Text = columnBindField; > myCheckBox.ID = columnID; > container.Controls.Add(myCheckBox); > container.Controls.Add(lb); > } > } >} > >andre.seifert >@xmmm.de > > >>-----Urspr�ngliche Nachricht----- >>Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >>Im Auftrag von Joerg Uth >>Gesendet: Donnerstag, 20. Februar 2003 12:09 >>An: [EMAIL PROTECTED] >>Betreff: RE: [Asp.net] DataGrid Item Template dynamisch erzeugen >> >> >>DataBind ist klar das ist es aber nicht was ich meinte sondern ein >>durch DB Eintr�ge ezeugtes DataGrid wurde erzeugt. >> >>Dieses nehme ich und will es erweitern und halt diese Template >>hinzuf�gen um eine Checkbox hinzuf�gen zu k�nnen. >> >>DataGrid mDataGrid =(DataGrid) Page.FindControl("dg_4576"); >> >> >> >> >> >>-----Original Message----- >>From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED]] >>On Behalf Of Sebastian Krampe >>Sent: Thursday, February 20, 2003 11:53 AM >>To: '[EMAIL PROTECTED]' >>Subject: AW: [Asp.net] DataGrid Item Template dynamisch erzeugen >> >> >> >>Versuchs mal mit einem >> mDataGrid.DataBind(); >>am Ende. >> >>Gru� >>Sebastian >> >>-----Urspr�ngliche Nachricht----- >>Von: Joerg Uth [mailto:[EMAIL PROTECTED]] >>Gesendet: Donnerstag, 20. Februar 2003 11:54 >>An: [EMAIL PROTECTED] >>Betreff: [Asp.net] DataGrid Item Template dynamisch erzeugen >> >> >>Hallo zusammen ich versuche zur Laufzeit einem DataGrid >>ein ItemTemplate hinzuzuf�gen um eine Checkbox-Spalte darzustellen. >> >><asp:templatecolumn> >> <itemtemplate> >> <asp:checkbox id="cb"></asp:checkbox> >> </itemtemplate> >></asp:templatecolumn> >> >>Meine Grundidee ist: >> >>TemplateColumn tc = new TemplateColumn(); >System.Web.UI.Control c = new >>System.Web.UI.Control(); CheckBox cb = new CheckBox(); >>cb.ID = "CheckBox"; >>c.Controls.Add(cb); >> >>ITemplate it; >>it.InstantiateIn(c); >>tc.ItemTemplate =(ITemplate) it; >> >>mDataGrid.Columns.Add(tc); >> >>Aber das Funktionier leider nicht. >> >>Hat einer von Euch eine Idee oder muss ich eine neue Class f�r dieses >>Template erzeugen in der Art TemplateBuilder() oder so: >> >>J�rg >> >>_______________________________________________ >>Asp.net mailing list >>[EMAIL PROTECTED] >http://www.glengamoi.com/mailman/listinfo/asp.n>et >> >> >>. > >>_______________________________________________ > >>Asp.net mailing list >>[EMAIL PROTECTED] >http://www.glengamoi.com/mailman/listinfo/asp.n>et >> > >>_______________________________________________ > >>Asp.net mailing list >>[EMAIL PROTECTED] >http://www.glengamoi.com/mailman/listinfo/asp.n>et >> > > >_______________________________________________ >Asp.net >mailing list >[EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/asp.net > >_______________________________________________ >Asp.net mailing list >[EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/asp.net > _______________________________________________ Asp.net mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/asp.net _______________________________________________ Asp.net mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/asp.net
