2010-05-18 7 views
14

vì vậy tôi điền vào DGV của tôi với một số dữ liệu và thiết lập một số cột vô hình:Làm cách nào để sắp xếp lại các cột trong một DataGridView?

 var part = inventory.espiromex_product.Where(p => p.descriptionsmall == cmbMainP.Text).First().partnumberp; 
     dtgAssy.DataSource = inventory.espiromex_productsub.Where(p => p.partnumberp == part); 
     dtgAssy.Columns["idproductsub"].Visible = false; 
     dtgAssy.Columns["partnumberp"].Visible = false; 
     dtgAssy.Columns["partnumbersubp"].Visible = true; 
     dtgAssy.Columns["quantity"].Visible = true; 
     dtgAssy.Columns["comments"].Visible = true; 
     dtgAssy.Columns["assemblyno"].Visible = false; 
     dtgAssy.Columns["assemblynodesc"].Visible = false; 
     dtgAssy.Columns["uomid"].Visible = true; 
     dtgAssy.Columns["subassemblylevelnumber"].Visible = false; 
     dtgAssy.Columns["scrappercent"].Visible = true; 

này là tốt nhưng cột đều được sắp xếp thứ tự chữ cái, Làm thế nào tôi có thể sắp xếp lại các cột lập trình?

lưu ý rằng khoảng không quảng cáo là một Entitie và tôi đang sử dụng LINQ to Entities.

Trả lời

5

Một đề xuất khác: không cho phép DataGridview ra quyết định cho bạn. Thay vì để dgv tự động tạo cột cho bạn tại thời điểm ràng buộc, hãy viết mã để tạo các cột theo thứ tự bạn muốn và với các thuộc tính bạn muốn và sau đó liên kết nguồn dữ liệu. Dựa vào dgv để thực hiện công việc có thể tạo ra kết quả không thể đoán trước khi các phiên bản mới xuất hiện hoặc bạn thực hiện các thay đổi tinh tế cho nguồn dữ liệu của mình.

+0

Miễn là các truy vấn không dựa vào 'SELECT *' thì thứ tự của các cột sẽ rất nhất quán và sẽ không bị ảnh hưởng bởi những thay đổi đủ tinh tế để không phá vỡ các truy vấn của bạn. – Wayne

+2

Tôi thích phương pháp xác định. Nếu bạn muốn một hành vi cụ thể, mã cho nó. Đừng dựa vào hành vi bán có thể đoán trước nhưng không được bảo đảm. – cdkMoose