2012-02-19 28 views
0

我正在開發一個網站,它從數據庫中檢索數據,但即時通訊新的Web開發。asp.net用C#代碼插入新的下拉列表

我使用gridviews,下拉列表等顯示數據,但有一個頁面,網站用戶將設置需要完成他的工作的具體下拉列表的數量。

更具體地說,用戶會選擇產品和每個產品的數量,但我不知道用戶需要多少產品。如果用戶想要輸入x個產品,我想創建x個下拉列表(在不同的行中),以便他可以選擇x個產品及其數量。

例如 用戶A想要選擇2個西紅柿,3個土豆和5個西瓜。 他將3型(對於產品編號)中的文本框,然後3個行將與每個2名下拉列表中出現,並且用戶將選擇

西紅柿2

土豆3個

西瓜5

添加新行 - >>>這是我想創建的另一件事

任何想法?

回答

1

在代碼隱藏中,特別是在Page_Load事件期間,您需要確定需要多少個下拉列表,然後即時創建它們。有相當這將導致谷歌搜索的幾個例子,但一個簡單的例子看起來像:

int countNeeded = 15; //or whatever your code tells you is the right amount 

for (int x = 0; x < 15; x++) 
{ 
    mainContent.Controls.Add(new DropDownList()); 
    //mainContent would be a control on the page that you want to host your controls. 
} 
+0

mainContent是什麼樣的控件? – Dchris 2012-02-19 18:37:48

+0

mainContent可以是一個Panel控件,或者是任何接受兒童的控件。表格也適用,你只需要訪問單元格。 – 2012-02-19 18:49:37

0

您可以創建你的代碼背後需要的控件。

  • 創建控件在Page_InitPage_Load事件
  • 重新每個頁面加載控件,當你希望它們出現(包括回傳)
  • 你可以把每個:當這樣做,你應該考慮的事情在表中的單獨一行下拉菜單,如果你想讓他們出現在不同的行或者你可以把它們LiteralControl

一些示例代碼之間:

protected void Page_Load(object sender, EventArgs e) 
{ 
    //read how many DropDownList controls are needed 
    int ddlCount = txtDropDownList.Text; 

    for (int i = 0; i < ddlCount; ++i) 
    { 
     if (i > 0) 
     { 
      //add a page break between previous DropDownList and the current one 
      this.Controls.Add(LiteralControl("<br />")); 
     } 

     //add a DropDownList with ID productDdl and an appropriate number 
     this.Controls.pageContent.Add(new DropDownList() { ID = String.Format("productDdl{0}", i) }); 
    } 
} 

我還沒有測試過這個代碼,所以如果你發現任何問題,請告訴我,我會盡力糾正它們。