Har en DataTable där några kolumner får ColumnMapping=Hidden och sen presenterar jag resultatet i en DataView i en DataGrid. Eftersom man inte kan fånga klick i en cell på nåt vettigt sätt så använder jag CurrentCellChanged. Problemet är ju nu bara att när jag får reda på vilken cell som det är klickat i så vill jag veta vad Kolumnen har för namn. Nu frågar jag DataTablen efter Kolumnen genom table.Columns[cell.ColumnNumber]...problemet är ju bara att cell.ColumnNumber ger ju den synliga kolumnnumret och jag måste ju ha vilket nummer den har i tabellen... Tips: Hej.DataGrid, DataTable, ColumnMapping Hidden - problem
Det blir samma problem om man använder DataGrid.HitTestInfo ... hur får man fram namnet på kolumnen.
Några förslag?
/Johan
*********Löste det med lite trixande********************
La in denna koden när jag skapade min Table:
DataGridTableStyle dgStyle = new DataGridTableStyle();
dgStyle.MappingName = table.TableName;
datagrid.TableStyles.Add(dgStyle);
La in följande kod i mousedown:
Point pt = new Point(e.X, e.Y);
DataGrid.HitTestInfo hti = datagrid.HitTest(pt);
if(hti.Type == DataGrid.HitTestType.Cell)
{
DataGridTableStyle gridStyle = datagrid.TableStyles[currentView.Table.TableName];
String val=datagrid[hti.Row,hti.Column].ToString(); //innehåller värdet i cellen
if(!val.Equals(""))
{
string colName=gridStyle.GridColumnStyles[hti.Column].MappingName.ToString();
DataColumn col=table.Columns[colName];
....här händer en massa annat skoj
}
}Sv: DataGrid, DataTable, ColumnMapping Hidden - problem
Hur löste du det?
Jag sitter med liknande problem, nämligen att få tag på rätt cell som man klickade i, inte som nu att jag får tag på föregående cell.
/Anna-KarinSv: DataGrid, DataTable, ColumnMapping Hidden - problem
Kolla http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp
Där finns det mycket bra tips&trix krig datagrid:en om det skulle va nåt mer ni funderar över.Sv: DataGrid, DataTable, ColumnMapping Hidden - problem
Vill bara tacka dej mojje för den länken. Kanon!
//fredda