2009-05-19 35 views
5

Tôi đang sử dụng điều khiển ComboBox ASP.NET ASP.NET mới trong ứng dụng web của mình, và tôi đang gặp khó khăn trong việc tìm ra cách lập trình mục danh sách đã chọn. Ví dụ, tôi có một hình thức để chấp nhận địa chỉ và một ComboBox để chấp nhận một tên thành phố. Sau khi người dùng nhập và lưu và địa chỉ, tôi muốn đặt lại biểu mẫu, bao gồm cả ComboBoxes.Combobox của AJAX ASP.NET - Không thể thay đổi một cách có lập trình mục đã chọn

Với một điều khiển ASP.NET DropDownList thường tôi có thể thiết lập lại các sản phẩm được chọn như dưới đây:

City.SelectedIndex = -1; 

Việc kiểm soát ComboBox ASP.NET AJAX chấp nhận dòng mã này; nhưng khi trang đăng lại, giá trị đã chọn trước đó vẫn được chọn. Trợ giúp sẽ được đánh giá cao.

Cập nhật: Tôi đã thử các sau đây để vô ích ...

City.ClearSelection(); 

Trả lời

3

Một giải pháp cho điều này là sử dụng 2 lệnh Trước khi bạn tải trang Second time hoặc làm cho nó có thể nhìn thấy trong bản cập nhật Bảng điều chỉnh

  Combobox1.ClearSelection() 
      Combobox1.Dispose() 

này sẽ xóa Combobox Value.

Hy vọng trợ giúp này. Đã cho tôi một thời gian để tìm thấy nó.

0

Hãy thử:

ComboBox.Text = ""; 
ComboBox.ClearSelection(); 
+0

Chỉ cần thử điều đó và không có may mắn. Giá trị được chọn trước đó vẫn ở đó. Chỉ có giải pháp là để ràng buộc lại danh sách, nhưng tôi đang cố gắng để tránh một cơ sở dữ liệu hit. – jwalkerjr

+0

Nó có một bộ sưu tập các mặt hàng với một phương pháp rõ ràng? ComboBox.Items.Clear()? –

+0

Có, và điều đó không rõ ràng các mục danh sách, NHƯNG giá trị được chọn VẪN sẽ hiển thị trong hộp. – jwalkerjr

0

Bạn đang đề cập đến CascadingDropdown? Nếu vậy, thiết lập SelectedValue của CascadingDropDown thành null.

CascadingDropDown1.SelectedValue = null; 
+1

Tim, thực ra tôi đang nói về điều khiển ComboBox của Bộ điều khiển MS Ajax mới. Thật không may, thiết lập thuộc tính .SelectedValue của điều khiển thành null vẫn không hoạt động. Thuyết phục vào thời điểm này đây là một lỗi trong kiểm soát. Mong muốn MS sẽ xác nhận nó, mặc dù. – jwalkerjr

1

Đây là sự cố mở trên CodePlex. Vì vậy, bởi vì nó là một lỗi, không có giải pháp cho đến khi một bản vá được phát hành. Đây là số issue trên CodePlex.

1

nó làm việc khi tôi sử dụng DropDownStyle = "thả xuống" và lệnh này để xóa văn bản combobox1.SelectedItem.Text = ""

0

ok vì vậy nếu bạn muốn thiết lập các chỉ số đó là thực sự được lưu trữ trong các ẩn lĩnh vực kiểm soát nó trông giống như. Vì vậy, những gì tôi đang làm để xóa nó là điều này.

foreach (Control control in cbFeatures.Controls) 
      { 
       if (control is HiddenField) 
        ((HiddenField)control).Value = "0"; 
      } 

Điều này rất hữu ích cho tôi khi giá trị là chỉ mục mà bạn muốn đặt.

0

Điều này có thể được giải quyết bằng cách xóa các lĩnh vực tiềm ẩn như được giải thích trong blog sau http://techiecentre.blogspot.com/

0

Thay City.ClearSelection() như sau:

City.Items.Insert(0, ""); 
City.SelectedIndex = 0; 

Bây giờ điều này sẽ đưa một chuỗi rỗng trong danh sách thả xuống phần kiểm soát thành phố cũng như đặt văn bản thành chuỗi trống. Để xóa chuỗi rỗng khỏi danh sách thả xuống, hãy sử dụng

City.Items.Remove(""); 

trong sự kiện Page_Load thành phố.

1

* Đây vẫn là lỗi kể từ ngày 2-18-2011 Phiên bản 3.5.40412.2 của bộ công cụ *

Vì lợi ích của tất cả những người tìm kiếm Google, không có sửa lỗi nào mà tôi tìm thấy cho vấn đề này đã làm việc (bao gồm các phần khác nhau liên quan đến việc lặp lại bộ sưu tập điều khiển để tìm điều khiển ẩn, Vứt bỏ, vv)

* này làm việc cho tôi, dù có bao nhiêu lớp sâu tôi đã combobox chôn trong các điều khiển khác/tấm vv *

combobox.Items.Clear();

((TextBox) cmbMachineNum.FindControl ("TextBox")). Text = "";

+0

Cảm ơn một nhóm, @Paul. Điều này đã khiến tôi mất hết cả ngày ... :) –

Các vấn đề liên quan