分享

关于c#动态添加文本框及下拉框

 务实耐久 2014-01-25

如图所示:

 

前台代码:

<tr>
                <td colspan="4" align="center">
                     <asp:Panel ID="Panel1" runat="server" Width="400px" >
        </asp:Panel></td>
            </tr>

 

后台cs:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;


public partial class Goods : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
      //if(!IsPostBack)
      //{
      //    string name=Request.QueryString["name"].ToString();
      //    string address=Request.QueryString["name"].ToString();
      //    string telephone=Request.QueryString["name"].ToString();
      //    if (name!=null)
      //    {
      //        tx_ClientName.Text = name;
      //    }
      //    else if (address!=null)
      //    {
      //        tx_ClientAddress.Text = address;
      //    }
      //    else if(telephone!=null)
      //    {
      //        tx_ClientTele.Text = telephone;
      //    }
      //}
      
        ReLoadAddedTextBoxs();
     
    }
    private void ReLoadAddedTextBoxs()
    {
      
        for (int i = 1; i <= AddedTextBoxIds.Count; i++)
        {
            if (Convert.ToBoolean(i % 2))
            {
                DropDownList dlist = new DropDownList();
                dlist.ID = i.ToString();
                dlist.Width = Unit.Pixel(150);
                Datadropdownlist(dlist);
                Panel1.Controls.Add(dlist);
                // UpdatePanel1.ContentTemplateContainer.Controls.Add(dlist);
            }
            else
            {
                TextBox tb = new TextBox();
                tb.ID = i.ToString();
                tb.Width = Unit.Pixel(100);
                Panel1.Controls.Add(tb);
                // UpdatePanel1.ContentTemplateContainer.Controls.Add(tb);
            }
        }
    }


    //加载dropdownlist的数据信息
    protected void Datadropdownlist(DropDownList dlist)
    {
        dlist.DataSource = SQLClass.GetTable("SELECT GoodsName,GoodsID FROM [A_Goods]");
        dlist.DataTextField = "GoodsName";
        dlist.DataValueField = "GoodsID";
        dlist.DataBind();
    }

 

    private const string c_ids = "TextBoxDropDownListID";
    /// <summary>
    /// 纪录下动态增加的TextBox与dropdownlist的ID值
    /// </summary>
    private ArrayList AddedTextBoxIds
    {
        get
        {
            if (ViewState[c_ids] == null)
                ViewState[c_ids] = new ArrayList();

            return ViewState[c_ids] as ArrayList;
        }

        set { ViewState[c_ids] = value; }
    }


    protected void Button1_Click(object sender, EventArgs e)
    {
        //获取现在要增加的TextBox的ID索引
        string id = Convert.ToString(AddedTextBoxIds.Count + 1);
        if (Convert.ToBoolean((AddedTextBoxIds.Count + 1) % 2))   //当是奇数的时候为增加dropdownlist
        {

            DropDownList dlist = new DropDownList();
            dlist.Width = Unit.Pixel(150);
            Datadropdownlist(dlist);
            dlist.ID = id;
            Panel1.Controls.Add(dlist);
            // UpdatePanel1.ContentTemplateContainer.Controls.Add(dlist);
            AddedTextBoxIds.Add(id);
        }
        else                                                      //当是偶数的时候为增加text文本框
        {
            TextBox newBox = new TextBox();
            newBox.Width = Unit.Pixel(100);
            newBox.ID = id;
            newBox.Text = "数量:";
            Panel1.Controls.Add(newBox);
            // UpdatePanel1.ContentTemplateContainer.Controls.Add(newBox);
            AddedTextBoxIds.Add(id);    //纪录下新增加的TextBoxID,在下次PostBack时重新加载
        }
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        string[] droplistItem = new string[20];
        string[] droplistID = new string[20];
        string[] text = new string[20];
        for (int i = 1; i <= AddedTextBoxIds.Count; i++)    //获取panel1容器中的控件个数,int=1 表示第一个控件是dropdownlist
        {
            if (Convert.ToBoolean(i % 2))
            {
                DropDownList drop = Panel1.FindControl(i.ToString()) as DropDownList;
                // DropDownList drop = UpdatePanel1.ContentTemplateContainer.FindControl(i.ToString()) as DropDownList;
                droplistItem[(((i + 1) / 2) - 1)] = drop.SelectedItem.ToString();
                droplistID[(((i + 1) / 2) - 1)] = drop.SelectedValue.ToString();
            }
            else
            {
                TextBox tb = Panel1.FindControl(i.ToString()) as TextBox;
                //  TextBox tb = UpdatePanel1.ContentTemplateContainer.FindControl(i.ToString()) as TextBox;
                text[(i/2-1)] = tb.Text.Substring(3).ToString();
            }
        }


        //向数据库中插入商品名称及数量
        for (int i = 0; i <((AddedTextBoxIds.Count)/2); i++)
        {
            string str = "insert into A_ClientGoods([GoodsID],[GoodsName],[GoodsNumber],[ClientID]) values('" + droplistID[i].ToString() + "','" + droplistItem[i].ToString() + "','" + text[i].ToString() + "','" + 1 + "')";
            SQLClass.GetExecuteNonQuery(str);
        }

           
    }

}

关键部分已经打赏重点了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多