2012-11-26 17 views
-2

我在ASP.NET中創建了動態列表框(4到10)。 和我的問題是,我如何找到使用C#動態創建列表框?在ASP.NET中查找列表框

謝謝

當然......我感謝您的幫助。下面的代碼我使用的用於創建動態LB

protected void btndyfilter_Click(object sender, EventArgs e) 
     { 


      int numberOfListBox = lbFilter.GetSelectedIndices().Length; 
      string lbname = lbFilter.SelectedValue; 
      for (int i = 0; i < numberOfListBox; i++) 
      { 
       ListBox listb = new ListBox(); 
       ListItem lItem = new ListItem(); 
       listb.SelectionMode = System.Web.UI.WebControls.ListSelectionMode.Multiple; 

       listb.Height = 150; 
       listb.Width = 200; 
       lItem.Value = i.ToString(); 

       lItem.Text = lbname; 
       listb.Items.Add(lItem); 
       panFilter.Controls.Add(listb); 
       //once we created the LB dynamically i need to populate each LB with the corresponding values 
       connstr2 = System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; 
       conn2.ConnectionString = connstr2; 
       conn2.Open(); 
       CubeCollection CubeList = conn2.Cubes; 
       string cb = ddlCubeList.SelectedItem.Text; 
       //need to remove the Hardcoded Code 
       foreach (Member dimem in CubeList[cb].Dimensions["Date"].Hierarchies["Calendar Date"].Levels["Date"].GetMembers()) 
       { 
        ListItem Memlist = new ListItem(); 
        Memlist.Text = dimem.UniqueName; 
        lbFilter.Items.Add(Memlist); 

       } 

      } 
      panFilter.Visible = true; 
      panCubeDef.Visible = true; 
     } 

所以這將創建LB我相信:)...和註釋的代碼裏面我需要使用來填充每個LB項目..perhaps它咬硬編碼我需要刪除。所以我所有的動態的LB被填充,然後從所有磅選定的項目將進入我的MDX query..hope where子句我沒有混淆你

+1

它可能有助於爲你增添一些更詳細的關於你正在試圖做 – Ortund

+0

知道是什麼,並感謝尋找到它..基本上我所試圖做的是,我有我的網頁過濾器部分,這些過濾器值必須從我動態創建的列表框項目中選擇。所以爲此我需要找到動態列表框和它的項目,以後我可以構建我的where子句的查詢。希望這可以幫助你,以幫助我:) – user1849129

+0

@ user1849129你能刪除評論嗎?並告訴我們,你會在哪裏使用該動態創建的控件。 – Aristos

回答

0

而動態生成列表框,列表框給予ID作爲: ​​,lstBoxNo2lstBoxNo3等1,2,3(否)將從計數。 like

int count = 1;

通過這樣生成列表框控件

listboxid=lastBoxNo+count;

count++

',u有過的ID的控制。

else else http://stackoverflow.com/questions/3731007/using-findcontrol-to-find-control 使用此鏈接瞭解findcontrol。

2

有或者是,你可以存儲動態控制詳細的解釋或只是覺得,當你想使用它使用一些代碼一樣,你不會找到動態控件此

Control GetControlByName(string Name) 
{ 
foreach(Control c in this.Controls) 
    if(c.Name == Name) 
     return c; 

return null; 
} 
+0

只有當您有靜態控件時,或者您已創建後,這纔可以工作。在動態創建控件時,沒有理由再次搜索它 - 你知道它是因爲你在那個時候創建​​它。 – Aristos

+0

感謝所有我會試一試 – user1849129

0

的點2路。

  1. 您第一次呈現頁面的那一刻。
  2. 在其他郵寄回。

在1的情況下,那麼你最好在你的網頁上保留一個變量,以保持創作。

在2的情況下,當你回來後,你需要以某種方式控制你的作品保存在網頁時,您呈現。一個好的地方是將這些信息保存在視圖狀態中。

你也可以在帖子後面檢查是否有任何回發值,這些回覆是從你用1開始的序列編號來命名的,例如你開始查看是否從ControlName_1開始回發,然後是ControlName_2 ,而當你沒有發現任何其他值你結束。

+0

感謝Aristos ...你知道我是新來的asp,所以你可以請我提供一些代碼示例,如果你可以 – user1849129

+0

@ user1849129你先:)顯示你如何創建它們,以及在哪裏做你需要閱讀它們的結果。 – Aristos

+0

當然...我感謝你的幫助。下面我用來創建動態LB的代碼 – user1849129