Hvorfor tilføjer den ikke min event dynamisk
Hej!Jeg har følgende opsætning, problemet er bare at den ikke tilføjer min event korrekt, for jeg kan ihvertfald ikke kalde min funktion som skal kaldes fra eventen.
<%@ Page language="c#" Codebehind="InsertEntityInTable.aspx.cs" AutoEventWireup="false" Inherits="Stamdatabase_Web.InsertEntityInTable" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>InsertEntityInTable</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 320px; POSITION: absolute; TOP: 32px" runat="server">Vælg Tabel</asp:Label>
<asp:DropDownList id="tables" style="Z-INDEX: 102; LEFT: 408px; POSITION: absolute; TOP: 32px" runat="server"></asp:DropDownList>
<asp:DropDownList id="versions" style="Z-INDEX: 103; LEFT: 176px; POSITION: absolute; TOP: 32px" runat="server"
AutoPostBack="True"></asp:DropDownList>
<asp:Label id="Label2" style="Z-INDEX: 104; LEFT: 56px; POSITION: absolute; TOP: 32px" runat="server"
Width="96px">Vælg Version</asp:Label>
<asp:Button id="AddNew" style="Z-INDEX: 105; LEFT: 736px; POSITION: absolute; TOP: 32px" runat="server"
Text="Indsæt Ny"></asp:Button>
<asp:Table id="table" style="Z-INDEX: 106; LEFT: 56px; POSITION: absolute; TOP: 72px" runat="server"
Width="816px"></asp:Table>
</form>
</body>
</HTML>
-------------------------------------------------------------
CS filen
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Handler;
namespace Stamdatabase_Web
{
/// <summary>
/// Summary description for InsertEntityInTable.
/// </summary>
public class InsertEntityInTable : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.DropDownList versions;
protected System.Web.UI.WebControls.DropDownList tables;
protected System.Web.UI.WebControls.Button AddNew;
protected System.Web.UI.WebControls.Table table;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Button Insert;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
FillListBox();
}
}
public void FillListBox()
{
Handles.Instance().OpenConnection();
IDataReader read = Handles.Instance().GetResult("SELECT * FROM SYSTEM_VERSION");
if(read != null)
{
this.versions.Items.Add(" ");
while(read.Read())
{
this.versions.Items.Add(read["VersionName"].ToString());
}
}
Handles.Instance().CloseConnection();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.versions.SelectedIndexChanged += new System.EventHandler(this.versions_SelectedIndexChanged);
this.AddNew.Click += new System.EventHandler(this.AddNew_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void versions_SelectedIndexChanged(object sender, System.EventArgs e)
{
this.tables.Items.Clear();
Handles.Instance().OpenConnection();
IDataReader read = Handles.Instance().GetResult("SELECT VersionsID FROM SYSTEM_VERSION WHERE VersionName = '" + this.versions.SelectedItem.Text + "'");
read.Read();
string name = read["VersionsID"].ToString();
read.Close();
read = Handles.Instance().GetResult("SELECT * FROM SYSTEM_TOC WHERE " + name + " = 1");
while (read.Read())
{
this.tables.Items.Add(read["TABLE_NAME"].ToString());
}
read.Close();
Handles.Instance().CloseConnection();
}
private static int count = 0;
private void AddNew_Click(object sender, System.EventArgs e)
{
Handles.Instance().OpenConnection();
IDataReader read = Handles.Instance().GetResult("SELECT * FROM " + this.tables.SelectedItem.Text);
read.Read();
count = 0;
count = read.FieldCount;
read.Close();
string []snames = new string[count];
read = Handles.Instance().GetResult("DESCRIBE " + this.tables.SelectedItem.Text);
read.Read();
read.Read();
for(int i = 0; i < count; i++)
{
snames[i] = read[0].ToString();
read.Read();
}
read.Close();
Handles.Instance().CloseConnection();
for(int i = 0; i < count; i++)
{
System.Web.UI.WebControls.TableRow row;
System.Web.UI.WebControls.TableCell cell;
row = new TableRow();
cell = new TableCell();
cell.Width = 70;
cell.Text = snames[i];
row.Cells.Add(cell);
cell = new TableCell();
cell.Width = 100;
System.Web.UI.WebControls.TextBox box = new TextBox();
box.ID = "Temp_" + i.ToString();
cell.Controls.Add(box);
row.Cells.Add(cell);
if(i != count-1)
{
cell = new TableCell();
cell.Width = 70;
cell.Text = snames[i+1];
row.Cells.Add(cell);
cell = new TableCell();
cell.Width = 100;
System.Web.UI.WebControls.TextBox bo = new TextBox();
box.ID = "Temp_" + i.ToString();
cell.Controls.Add(bo);
row.Cells.Add(cell);
}
this.table.Rows.Add(row);
i++;
}
System.Web.UI.WebControls.TableRow r = new TableRow();
System.Web.UI.WebControls.TableCell c = new TableCell();
Insert = new Button();
Insert.Text = "Tilføj til Database";
Insert.Click += new EventHandler(Insert_Click);
Insert.Command +=new CommandEventHandler(Insert_Command);
c.Controls.Add(Insert);
c.Width = 70;
r.Cells.Add(c);
this.table.Rows.Add(r);
}
private void Insert_Click(object sender, EventArgs e)
{
string []s = new string[count];
for (int i = 0; i < count; i++ )
{
TextBox v = (TextBox)this.FindControl("Temp_" + i.ToString());
if (v.Text.Length == 0)
s[i] = "''";
else
s[i] = "'" + v.Text + "'";
}
if(s[0].Length > 0)
s[0] = "'1'";
else
s[0] = "'0'";
if(s[1].Length > 0)
s[1] = "'1'";
else
s[1] = "'0'";
}
private void Insert_Command(object sender, CommandEventArgs e)
{
Insert_Click(sender, e);
}
}
}
