根据选择下拉列表动态创建行

时间:2018-07-17 09:35:54

标签: c# asp.net

我编写了用于动态创建表的代码。包含文本框和Dropdownlist的表。 当我选择“ Splitter1:5”之类的下拉列表时,我尝试根据所选的dropdowlist值创建表,而不是Table行将创建5。第一次成功完成时,我尝试第二次未获得下拉列表的值。 我正在分享我的代码,请帮助我。

html代码:

<body>
    <form id="form1" runat="server">
        <div>
            <asp:DropDownList ID="ddlTextBoxes" runat="server">
                <asp:ListItem Value="2" Text="Splitter1:2" />
                <asp:ListItem Value="4" Text="Splitter1:4" />
                <asp:ListItem Value="8" Text="Splitter1:8" />
                <asp:ListItem Value="1" Text="Joint" />
                <asp:ListItem Value="0" Text="OLT" />
            </asp:DropDownList>
            <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" /><br />
            <asp:Panel ID="container" runat="server" Visible="false"> <asp:Button ID="btnSubmit" runat="server" Text="Process" OnClick="Submit" /></asp:Panel>



        </div>
    </form>
</body>

代码背后:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class testform : System.Web.UI.Page
{
    DropDownList DDL; int i;
    ArrayList arry_value = new ArrayList(); object[] obj;
    Panel pn;

    protected void Page_Load(object sender, EventArgs e)
    {
        //ViewState["droplist"] = obj;
    }



    protected void btnAdd_Click(object sender, EventArgs e)
    {
        int numOfTxt = Convert.ToInt32(ddlTextBoxes.SelectedItem.Value);
        //  DataTable dt = new DataTable();
        //dt.Columns.Add("First Textbox");
        //  dt.Columns.Add("Dropdownlist");
        //  dt.Columns.Add("Last Textbox");
        var table = new Table();

        for (i = 0; i < numOfTxt; i++)
        {
            var row = new TableRow();
            var cell = new TableCell();

            // var thr = new TableHeaderRow();
            // var heading = new TableHeaderCell();
            //TableHeaderCell thPNumber = new TableHeaderCell();

            // cell.Attributes.Add("runat", "server");

            TextBox textbox = new TextBox();
            textbox.ID = "Textbox" + i;
            textbox.Text = "text" + i;

            textbox.Width = new Unit(180);

            TextBox textbox1 = new TextBox();
            textbox1.ID = "Textbox1" + i;
            textbox1.Text = "text1" + i;
            textbox1.Width = new Unit(180);

            DDL = new DropDownList();
            DDL.ID = "DDL1" + i;

            DDL.Items.Add("Select Splitter");
            DDL.Items.Add(new ListItem("Splitter1:2", "2"));
            DDL.Items.Add(new ListItem("Splitter1:4", "4"));
            DDL.Items.Add(new ListItem("Splitter1:8", "8"));
            DDL.Items.Add(new ListItem("Joint", "1"));
            DDL.Items.Add(new ListItem("ONT", "0"));
            DDL.AutoPostBack = true;
            DDL.TextChanged += dropDown_TextChanged;
            // dt.Rows.Add(textbox1);
            cell.Controls.Add(textbox1);
            cell.Controls.Add(DDL);
            cell.Controls.Add(textbox);
            //dt.Rows.Add(DDL);
            //string val = DDL.SelectedItem.Value;
            // string val = DDL.SelectedValue;
            // dt.Rows.Add(textbox);
            row.Cells.Add(cell);
            // row.Cells.Add(thr);

            table.Rows.Add(row);
            arry_value.Add(DDL.ID);
            foreach (object obj in arry_value)
            {
                var idcollection = new string[] { obj.ToString() };
            }
            //for (int i1 = 0; i1 < arry_value.Count; i1++)
            //{
            //    //var empty1 = new string[] {arry_value[i].ToString() };
            //     obj = new object[] { arry_value[i]};



            //}
            //string count += (DDL.ID.SelectedItem.Value).toString();
        }
        pn = new Panel();
        pn.ID = "pan" + i + 1;
        this.form1.Controls.Add(pn);
        container.Visible = true;

        Button btnSubmit = new Button();
        btnSubmit.ID = "btnSubmit";
        btnSubmit.Text = "Processone";
        btnSubmit.Click += new System.EventHandler(Submit);
        container.Controls.Add(table);
        //pn.Controls.Add(btnSubmit);
      //  container.Controls.AddAt(0, table);

    }
    void dropDown_TextChanged(object sender, EventArgs e)
    {
        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Record Inserted Successfully')", true);
    }

    protected void Submit(object sender, EventArgs e)
    {
        //Student stud = (Student)ViewState["CurrentStudent"];
        //DropDownList ddl = (DropDownList)container.FindControl("DDL1"+i);
        // int numOfTxt = 4;
        int numOfTxt = 5;
        string drpvalue;
        for (int j = 0; j < Convert.ToInt32(ddlTextBoxes.SelectedItem.Value); j++)
        {
            drpvalue = "DDL12" + i + ".SelectedItem.Value";
            //int te = Convert.ToInt32(drpvalue);
          //  numOfTxt += Convert.ToInt32(DDL120.SelectedItem.Value);
        }
        //int numOfTxt = Convert.ToInt32(ddlTextBoxes.SelectedItem.Value);
        var table = new Table();
        DataTable dt = new DataTable();
        for (int i = 0; i < numOfTxt; i++)
        {
            var row = new TableRow();
            var cell = new TableCell();
            // dt.Columns.Add("TextOne1");
            cell.Attributes.Add("runat", "server");

            TextBox textbox = new TextBox();
            textbox.ID = "Textbox" + i;
            textbox.Text = "text" + i;
            textbox.Width = new Unit(180);

            TextBox textbox1 = new TextBox();
            textbox1.ID = "Textbox1" + i;
            textbox1.Text = textbox1.Text;
            textbox1.Width = new Unit(180);

            DropDownList DDLs = new DropDownList();
            DDLs.ID = "DDL12" + i;
            //  count= Convert.ToInt32( DDL.ID = "DDL12" + i);
            DDLs.Items.Add("Select Splitter");
            DDLs.Items.Add(new ListItem("Splitter1:2", "2"));
            DDLs.Items.Add(new ListItem("Splitter1:4", "4"));
            DDLs.Items.Add(new ListItem("Splitter1:8", "8"));
            DDLs.Items.Add(new ListItem("Joint", "1"));
            DDLs.Items.Add(new ListItem("ONT", "0"));

            //DDLs.AutoPostBack = true;
            DDLs.TextChanged += dropDown_TextChanged;

            //            dt.Rows.Add(textbox1);
            cell.Controls.Add(textbox1);
            // dt.Columns.Add("ListDropdown");
            cell.Controls.Add(DDLs);
            // dt.Columns.Add("Textbodx");
            cell.Controls.Add(textbox);
            row.Cells.Add(cell);
            table.Rows.Add(row);
        }
        Button btnSubmit = new Button();
        btnSubmit.ID = "btnSubmit";
        btnSubmit.Text = "Process";
        btnSubmit.Click += new System.EventHandler(Submit);

        Panel pans = new Panel();
        pans.ID = "panss";
        this.form1.Controls.Add(pans);
        pans.Controls.AddAt(0, table);
        pans.Controls.Add(btnSubmit);

        pans.Visible = true;
        //pn.Visible = true;


    }
}

0 个答案:

没有答案