Profifrage zu DataGrid

r3wDy

Grünschnabel
Huhu Leute.
Ich brauch nen ASP.NET Profi denn ich bin mit meinem Latein am ende und ich verstehe nun wirklich garnichtmehr was ASP da mit mir macht. Ich glaube ich hab ne KI entwickelt die macht was sie will ;)

Also: Ich habe einen Datagrid, wobei ich den aber alleine Erstelle, also nicht mit Templates in der aspx Datei sondern in der cs Datei InTheFly, damit das auf jede Tabelle passt. Das mache ich so:
Code:
//Erstmal MySQL Tabelleninfos holen
m_Database.Connect();
 
OdbcDataReader tmpReader = m_Database.ExecuteQuery("DESCRIBE "+Tabelle);
 
m_Table.columns = new ArrayList();
 
while(tmpReader.Read())
 
{
 
sColumn tmpColumn = new sColumn();
 
tmpColumn.Name = tmpReader.GetString(0);
 
tmpColumn.Type = tmpReader.GetString(1);
 
tmpColumn.CanBeNull = tmpReader.GetBoolean(2);
 
tmpColumn.key = (tmpReader.GetString(3) == "") ? false: true;
 
//tmpColumn.defaultValue = tmpReader.GetString(4);
 
m_Table.columns.Add(tmpColumn);
 
}
 
m_Table.Name = Tabelle;
 
m_Database.CloseConnection();


/=================================
//Dann in das Grid füllen
for(int i=m_Table.columns.Count-1;i>=0;i--)
 
{
 
BoundColumn BC = new BoundColumn();
 
BC.DataField = ((sColumn)m_Table.columns[i]).Name;
 
BC.HeaderText = ((sColumn)m_Table.columns[i]).Name;
 
if(((sColumn)m_Table.columns[i]).key)
 
{
 
BC.ReadOnly = true;
 
BC.HeaderText += "(Key)";
 
}
 
Grid.Columns.AddAt(0,BC);
 
}
Und das funktioniert ganz wunderbar, ich bekomme immer jede Tabelle angezeit.
ABER: Die Event spielen total verrückt. Ich habe die Editspalte in der Tabelle:
Code:
	 <asp:datagrid id="MainGrid" runat="server" OnItemCreated="Created" OnEditCommand="Edit" OnUpdateCommand="UpdateDataset" OnCancelCommand="OnUpdateCancel" ItemStyle-Font-Name="Verdana" EditItemStyle-BackColor="#eeeeee" AlternatingItemStyle-BackColor="#dddddd" HeaderStyle-Font-Name="Verdana" HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="White" HeaderStyle-BackColor="Red" HeaderStyle-HorizontalAlign="Center" AutoGenerateColumns="False">
				<EditItemStyle backcolor="#EEEEEE"></EditItemStyle>
				<AlternatingItemStyle backcolor="#DDDDDD"></AlternatingItemStyle>
				<ItemStyle font-names="Verdana"></ItemStyle>
				<HeaderStyle font-names="Verdana" font-bold="True" horizontalalign="Center" forecolor="White" backcolor="Red"></HeaderStyle>
				<Columns>
					<asp:EditCommandColumn ButtonType="PushButton" UpdateText="OK" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
					<asp:TemplateColumn HeaderText="Loeschen">
						<ItemTemplate>
							<asp:Button id="B_Delete" runat="server" OnClick="Delete_Click" Text="Loeschen"></asp:Button>
						</ItemTemplate>
					</asp:TemplateColumn>
					<asp:TemplateColumn HeaderText="Anker">
						<ItemTemplate>
							<asp:Label id="Anchor" runat="server"></asp:Label> 
							</asp:TemplateColumn>
						</ItemTemplate>
					</asp:TemplateColumn>
				</Columns>
			</asp:datagrid>
Und wie markiert an FUnktionen gebunden. Wenn ich nun ohne die Tabelle selber gebaut zu haben (Wenn nur die Template Spalten drin sind) die Edit Buttons use machen sie was sie sollen, aber wenn ich die Tabelle seber aufbaue, dann machen bei Buttons (Update udn Cance) BEIDE die Cancelfunktion.
Ich habs auch schon verscuht die Funktionen hinterher als Event anzubinden, das geht auch nicht weil der wohl bei jedem mal wo ich zu der Tabelle was hinzufüge die zuweisunge vergisst.
Weis einer woran das liegen kann?
 
Zurück