Avatar billede testpilot_dk Nybegynder
13. december 2005 - 18:53 Der er 24 kommentarer og
1 løsning

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);
        }
    }
}
Avatar billede dr_chaos Nybegynder
13. december 2005 - 19:14 #1
prøv at ændre:
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);


tilthis.versions.SelectedIndexChanged += new System.EventHandler(versions_SelectedIndexChanged);
            this.AddNew.Click += new System.EventHandler(AddNew_Click);
            this.Load += new System.EventHandler(Page_Load);
Avatar billede testpilot_dk Nybegynder
13. december 2005 - 19:21 #2
okay, men det er meere event

            Insert = new Button();
            Insert.Text = "Tilføj til Database";
            Insert.Click += new EventHandler(Insert_Click);
            Insert.Command +=new CommandEventHandler(Insert_Command);
Avatar billede dr_chaos Nybegynder
13. december 2005 - 19:26 #3
flyt
Insert = new Button();
            Insert.Text = "Tilføj til Database";
            Insert.Click += new EventHandler(Insert_Click);
            Insert.Command +=new CommandEventHandler(Insert_Command);
op under de andre eventhandlers
Avatar billede testpilot_dk Nybegynder
13. december 2005 - 19:35 #4
ja, hvordan styrer jeg så placering af den
Avatar billede dr_chaos Nybegynder
13. december 2005 - 19:36 #5
lad mig lige prøve noget. vender snart tilbage
Avatar billede dr_chaos Nybegynder
13. december 2005 - 19:56 #6
jeg har lavet en test side som gør det du vil have:

code behind:
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;

namespace WebApplication2
{
    /// <summary>
    /// Summary description for WebForm2.
    /// </summary>
    public class WebForm2 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.Label Label1;
        protected System.Web.UI.WebControls.Label Label2;
        protected System.Web.UI.WebControls.DropDownList DropDownList1;
        protected System.Web.UI.WebControls.Table tbl1;

        private void Page_Load(object sender, System.EventArgs e)
        {
            if(IsPostBack)
            {
                CreateButtons();}
        }

        #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.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void Button1_Click(object sender, System.EventArgs e)
        {
            CreateButtons();
        }

        private void btn_Click(object sender, EventArgs e)
        {
            Label1.Text = "Button was clicked";
        }

        private void ddl_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList ddl1 = new DropDownList();
            ddl1 = (DropDownList)Page.FindControl("Form1").FindControl("tbl1").FindControl("tr1").FindControl("tc1").FindControl("ddl1");
            if(ddl1 != null){Label2.Text = ddl1.SelectedItem.Text;}
        }

        private void CreateButtons()
        {
            DropDownList ddl = new DropDownList();
            ddl.Items.Add("1");
            ddl.Items.Add("2");
            ddl.Items.Add("3");
            ddl.ID = "ddl1";
            DropDownList ddl1 = new DropDownList();
            ddl1 = (DropDownList) Page.FindControl("Form1").FindControl("tbl1").FindControl("tr1").FindControl("tc1").FindControl("ddl1");
            if(ddl1 == null)
            {
                Page.FindControl("Form1").FindControl("tbl1").FindControl("tr1").FindControl("tc1").Controls.Add(ddl);
                ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);}

            Button btn1 = new Button();
            btn1 = (Button)Page.FindControl("Form1").FindControl("btn1");
            if(btn1 == null)
            {
                Button btn = new Button();
                btn.Text = "Click";
                btn.ID = "btn1";

                Page.FindControl("Form1").Controls.Add(btn);
                btn.Click += new EventHandler(btn_Click);}
        }
    }
}
Avatar billede dr_chaos Nybegynder
13. december 2005 - 19:56 #7
aspx:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm2</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:Table ID="tbl1" Runat="server" Width="200px">
<asp:TableRow ID="tr1" Runat="server" Width="100%">
<asp:TableCell ID="tc1" Runat="server" Width="50%"></asp:TableCell>
</asp:TableRow>
<asp:TableRow ID="trlink" Runat="server" Width="100%">
<asp:TableCell ID="tclink" Runat="server" Width="50%">
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 24px; POSITION: absolute; TOP: 224px" runat="server"
Width="312px">Label</asp:Label>
<asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 256px" runat="server"
Width="312px">Label</asp:Label>
        </form>
    </body>
</HTML>
Avatar billede testpilot_dk Nybegynder
13. december 2005 - 20:15 #8
dem gør næsten det rigtige bortset fra at jeg skal vælge fra 2 dropdown bokse før knappen bliver vist og er aktiv!
Avatar billede dr_chaos Nybegynder
13. december 2005 - 20:18 #9
jeg har desværre ikke tid til at kigge videre på det nu men gør det imorgen.
Avatar billede testpilot_dk Nybegynder
13. december 2005 - 20:19 #10
det er helt okay!

Takker for hjælpen indtil videre
Avatar billede dr_chaos Nybegynder
13. december 2005 - 20:24 #11
måske kan du selv løse problemet ved at kigge videre på:
CreateButtons() i det foreslag jeg har lavet.
Det er noget i den stil du skal bruge.
Avatar billede testpilot_dk Nybegynder
13. december 2005 - 20:28 #12
ja, jeg gir det en chance!
Avatar billede testpilot_dk Nybegynder
14. december 2005 - 07:42 #13
Hej!

Nu har jeg kigget en del på det, men jeg kan ikke få den til at gører hvad jeg gerne vil!

Sådan vil jeg have det skal fungere!

Jeg vælger noget i en dropdownlist,    klikker på en knap for at sige ok til valget

Den skal indslæsse en tabel dynamisk i den sidste række skal den så tilføje en knap + event som virker!

Jeg har det med dropdown og knap for valg, men tabellen bliver godt nok genereret og den nye knap kommer til syne, men den har ikke rigtigt nogen event på sig!
Avatar billede dr_chaos Nybegynder
14. december 2005 - 09:20 #14
paste lige din nuværende kildekode
Avatar billede testpilot_dk Nybegynder
14. december 2005 - 09:29 #15
den aller første besked jeg skrev, passer meget godt til min kode på nuværende tidspunkt
Avatar billede testpilot_dk Nybegynder
14. december 2005 - 09:53 #16
<%@ 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);
        }
    }
}
Avatar billede dr_chaos Nybegynder
14. december 2005 - 10:01 #17
denne her virker:
cs
:
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;

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)
        {
           
        }

       

        #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);
            Insert.Click += new EventHandler(Insert_Click);
            Insert.Command +=new CommandEventHandler(Insert_Command);
            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();
            Button InsertCopy = Insert;
            InsertCopy.Text = "Tilføj til Database";
            InsertCopy.Visible= true;
            c.Controls.Add(InsertCopy);
            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)
        {
            System.Diagnostics.Debug.WriteLine("afasf");
            //Insert_Click(sender, e);
        }
    }
}
Avatar billede dr_chaos Nybegynder
14. december 2005 - 10:01 #18
aspx:
<%@ 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:Button ID=Insert Visible=false Runat=server Text=""></asp:Button>
            <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>
Avatar billede testpilot_dk Nybegynder
14. december 2005 - 10:03 #19
du lægger den bare det gamle objekt over i et nyt!

Jeg vil prøve det senere, men send et svar
Avatar billede dr_chaos Nybegynder
14. december 2005 - 10:03 #20
der er en hel del der er udkommenteret men det er nødvendigt.

det jeg har gjort er at tilføje en knap kaldet Insert på aspx siden.
den er så sat ikke synlig.
Jeg tilføjer nogle event handlers til den i InitializeComponent.
for så at tilføje den kopierer jeg knappen og adder den til tabellen.
på denne måde:
  Button InsertCopy = Insert;
InsertCopy.Text = "Tilføj til Database";
InsertCopy.Visible= true;
c.Controls.Add(InsertCopy);
i insert_command
udskriver jeg så en lille test:
  System.Diagnostics.Debug.WriteLine("afasf");
Avatar billede dr_chaos Nybegynder
14. december 2005 - 10:05 #21
System.Diagnostics.Debug.WriteLine udskriver en tekst i output vinduet.
svar :)

Du skal bare tilføje de ændringer jeg har lavet til dit nuværende produkt så burde det virke.
Avatar billede testpilot_dk Nybegynder
14. december 2005 - 10:09 #22
Mange takker, det er jo egentligt ganske smart!
Avatar billede dr_chaos Nybegynder
14. december 2005 - 10:11 #23
ja det var bare en ide jeg fik :)
Avatar billede testpilot_dk Nybegynder
14. december 2005 - 19:35 #24
hej! nu har jeg prøvet det!

Det virker fint nok, men jeg får ikke fat i mine controls!

Hvorfor ikke det ???

hvis jeg debugger og forsøger at finde controls

this.FindControls ()

Kan jeg se at der kun er 3 controls under this
Avatar billede testpilot_dk Nybegynder
14. december 2005 - 19:46 #25
den glemmer min tabel når der trykkes på knappen!

Hvorfor det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester