2009-06-09 35 views
9

Tôi có một chế độ xem dữ liệu được điền dữ liệu được trả về từ truy vấn LINQ. Nếu truy vấn trả về không có kết quả nào tôi muốn hiển thị một hộp thông báo. Có cách nào kiểm tra xem liệu chế độ xem dữ liệu có trống không?C# DataGridView Kiểm tra xem trống

Kính trọng

+0

Đây có phải là ASP .Net hoặc Windows Forms không? – SLaks

Trả lời

23

Bạn có thể tìm hiểu xem nó có trống không bằng cách kiểm tra số hàng trong DataGridView. Nếu myDataGridView.Rows.Count == 0 thì DataGridView của bạn trống.

0

Bạn có thể kiểm tra thuộc tính Rows.Count của chế độ xem dữ liệu.

Mặc dù bạn cũng có thể muốn xem xét thuộc tính EmptyDataText của DataGridView. Nó có thể giúp bạn tiết kiệm một hộp thông báo.

1

Dựa trên kết quả LINQ, bạn có thể ẩn chế độ xem dữ liệu và hiển thị một số điều khiển khác (như chữ hoặc thứ gì đó) hiển thị thông báo. Nếu bạn muốn một số loại popup hộp thư, bạn cần phải ném một số JavaScript trong đó.

+0

không thể thấy tại sao jscript là cần thiết ở tất cả, bao giờ – Goober

1

Rất nhiều câu trả lời ở đây có tham chiếu đến Rows.Count. Thông thường, điều đó không đặt ra một vấn đề và nó sẽ trong nhiều trường hợp là một overkill để làm những gì tôi về để đề nghị.

Nhưng vì những lý do nêu tại this document nó có thể không phải là một ý tưởng tốt để gọi Rows.Count nếu DataGridView thường xuyên có rất nhiều dữ liệu (>~ 5000 tế bào trong profiling bộ nhớ tôi đã làm để xác nhận bài viết mà một thời gian sau).

Tránh sử dụng Count tài sản của System.Windows.Forms.DataGridViewSelectedCellCollection để xác định số lượng các ô được chọn. Thay vào đó, hãy sử dụng phương thức DataGridView.GetCellCount và chuyển vào giá trị DataGridViewElementStates.Selected. Tương tự, sử dụng các phương pháp DataGridViewRowCollection.GetRowCountDataGridViewColumnCollection.GetColumnCount để xác định số phần tử được chọn , thay vì truy cập hàng đã chọn và bộ sưu tập cột.

Trong trường hợp này bạn có thể sử dụng

myDataGridView1.Rows.GetRowCount(.) == 0 

Nếu bạn đang phải đối phó với dữ liệu thay đổi nhanh chóng hoặc một lượng lớn dữ liệu (hoặc tệ hơn, số lượng lớn các dữ liệu thay đổi nhanh) sau đó chỉ cần sử dụng dòng. Count - nó không đau lắm đâu.

0

này nên làm điều đó:

dataGridView1.RowCount == 0 
2

Phương pháp DGV.Rows.Count kiểm tra nếu DGV trống không hoạt động nếu tùy chọn AllowUserToAddRows được thiết lập là true.

Bạn cần phải vô hiệu hóa AllowUserToAddRows = false sau đó kiểm tra các sản phẩm nào như thế này:

if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null) 
1

// này mang đến cho hàng count = 1

if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null) 

// nên cuối cùng tôi modifieded mã như dưới đây và nó hoạt động cho tôi

if(dataGridView1.Rows.Count>1 && dataGridView1.Rows != null) 
Các vấn đề liên quan