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