2011-05-02 59 views
3

過去,我使用jQuery Ajax創建購物車。這一次我使用列表視圖服務器控件。檢索和更新ListView中的服務器控制值

如果我在每一行都有一個數字文本框,並且我想更新按鈕上的數量,那麼這是實現此目的最優雅的方式嗎?

protected void Button1_Click(object sender, EventArgs e) 
    { 
     foreach(ListViewItem item in ListViewCart.Items) 
     { 
      foreach (Control con in item.Controls) 
      { 
       if (con.GetType() == typeof(TextBox)) 
       { 
        //Do Work. 
       } 
      } 
     } 
    } 

我猜我需要將productID存儲在每個文本框的自定義屬性中,並在更新數據庫時使用它。 (或者編寫更多的代碼,以便在該行的其他地方找到該值)。

更重要的是,是否有我可能想使用的不同服務器控件?我不想使用gridview。

+0

如果你的內容是表格,GridView控件可能是更容易使用。 – 2011-05-02 23:38:11

回答

2

我想你可以縮短它有點像這個

foreach (TextBox txtBox in 
    ListViewCart.Items.SelectMany(item => item.Controls.OfType<TextBox>())) 
{ 
    //do work like - txtBox.Text = "foo"; 
} 
+0

我得到這個錯誤:'無法轉換類型爲' d__aa'1 [System.Web.UI.WebControls.TextBox]'的對象來鍵入'System.Web.UI.WebControls.TextBox'。' – 2011-05-03 00:25:40

+0

你能嘗試'SelectMany()'而不是'Select()'? – 2011-05-03 00:27:13

相關問題