Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Làm sao để nội dung combobox không bị thay đổi

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    147

    Mặc định Làm sao để nội dung combobox không bị thay đổi

    Mình có 2 combobox trên 1 form , mình load dữ liệu vào dataset để load vào 2 combobox rồi khai báo trong sự kiện formload
    Code:
    {
    dataset ds=new dataset();
    ds=laydulieu();
    combobox1.datasource=ds.table[0];
    combobox1.displaymember="giatri1";
    combobox1.valuemember="giatri2";
    combobox2.datasource=ds.table[0];
    combobox2.displaymember="giatri1";
    combobox2.valuemember="giatri2";
    }
    Sau khi load xong dữ liệu vào 2 combobox thì khi chọn giá trị bất kì trong combobox1 thì giá trị trong combobox2 cũng chọn theo và ngược lại.Vậy làm sao để giá trị trong mỗi combobox là riêng lẻ (Mình đã thử thay mỗi combobox.datasource là 1 datasource riêng lẻ nhưng vẫn không được và trên 2 combobox này mình chưa viết bất kì sự kiện nào).

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    12

    Nếu theo ý mình hiểu thì bạn sử dụng 1 dataset chung cho 2 combobox phải không, và khi bạn thay đổi 1 combobox thì 1 combox còn lại cũng thay đổi theo?
    Mình chưa làm như vậy bao giờ cả nên cũng không rõ, nhưng bạn có thể khắc phục bằng cách clone cái dataset đó ra và dùng riêng.

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    294

    Khi bạn dùng 1 datatable làm datasource cho 1 control, dữ liệu hiển thị trên control đó không phải lấy trực tiếp từ datatable mà lấy từ dataview của datatable đó. Dataview này có 1 cái index trỏ tới đối tượng - row hiện đang được hiển thị hoặc focus trên control.

    Do đó nếu bạn gán 1 table cho 2 combobox, khi thay đổi 1 combobox thì cái index kia của dataview bị thay đổi dẫn tới combobox còn lại cũng thay đổi theo.

    Để tránh tình trạng đó, cách mà Dark nghĩ là khả thi nhất đó là clone cái table đó thành 1 table khác(lưu ý là dùng hàm copy nhé, chứ gán "=" là nó vẫn như cũ).

    Cheers!
    Is the moon rising...

  4. #4
    Ngày gia nhập
    12 2007
    Bài viết
    147

    Bạn có thể nói rõ hơn về cách sử dụng Clone được không.

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    12

    DataTable dt1 = dt.Copy(); // dt là cái bảng ban đầu, dt1 là cái bảng mới.

    Cần lưu ý đến việc cập nhật vào 1 trong 2 bảng nó có ảnh hưởng gì đến bussiness ko nhé! (Liệu có cần cập nhật cả 2 chứ ko fải 1 bảng )

  6. #6
    Ngày gia nhập
    03 2008
    Bài viết
    43

    Mặc định Làm sao để nội dung combobox không bị thay đổi

    Còn cách khác nữa nè, cách này hơn dài, là bạn viết thêm một hàm laydulieu() sao đó bạn chỉ cần gấn dataset là xong.

Các đề tài tương tự

  1. thay đổi giá trị trong Combobox như thế nào?
    Gửi bởi maixanh88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 01-11-2017, 07:59 PM
  2. Thay đổi chiều cao ComboBox, MaskedTextbox
    Gửi bởi MYNAM trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 08-11-2010, 10:21 AM
  3. Lập trình C++ thay đổi nội dung tệp ở vị trí bất kỳ
    Gửi bởi security_216 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 21-08-2010, 11:04 PM
  4. Thay Đổi Bội Dung Tập Tin app.Config
    Gửi bởi ledinhtham trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 23
    Bài viết cuối: 23-06-2010, 11:42 PM
  5. C# - Thay đổi tùy chọn theo combobox
    Gửi bởi ltdt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 09-05-2010, 02:29 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn