2010-05-18 14 views
14

tan lleno mi DGV con algunos datos y establecer algunas columnas invisibles:¿Cómo puedo reordenar columnas en un 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; 

esto está bien, pero las columnas están ordenadas alfabéticamente, ¿Cómo puedo reordenar columnas mediante programación?

tenga en cuenta que el inventario es una Entidad y estoy utilizando Linq para Entidades.

Respuesta

5

Otra sugerencia: no deje que datagridview tome decisiones por usted. En lugar de dejar que el dgv genere columnas automáticamente en el momento del enlace, escriba el código para crear las columnas en el orden que desee y con los atributos que desee, y luego vincule el origen de datos. Confiar en el dgv para hacer el trabajo puede crear resultados impredecibles a medida que salen nuevas versiones o hace cambios sutiles a su fuente de datos.

+0

Mientras las consultas no dependan de 'SELECT *', el orden de las columnas será muy constante y no se verá afectado por cambios lo suficientemente sutiles para no interrumpir sus consultas. – Wayne

+2

Prefiero un enfoque determinista. Si quieres un comportamiento específico, codifícalo. No confíe en el comportamiento semi-predecible pero no garantizado. – cdkMoose

Cuestiones relacionadas