2009-06-02 2 views
0

Некоторые данные отображаются в представлении данных (Winform). У меня есть требование отправить таблицу, представленную в datagridview, в аналогичном формате (строки, столбцы и т. Д.). Что самое легкое, я могу это сделать? Как преобразовать это в таблицу html с заголовками столбцов и сохранить ширину столбца.Данные DataGridView для C# WinForm для html

+1

См. Также: http://stackoverflow.com/questions/16008477/export-datagridview-to-html-page –

ответ

2

Я не знаю, есть ли какие-либо преобразования уровня каркаса, которые могут иметь место. Но это должно быть довольно простым вопросом, чтобы итерации через строки сетки и ячейки, и воссоздать его в HTML с шириной на месте.

Написано с манжетой, пожалуйста, извините за ее незавершенность и любые простые ошибки, но я думаю, вы можете получить основную идею здесь.

StringBuilder sb = new SringBuilder(); 

sb.AppendLine("<table>"); 
sb.AppendLine(" <tr>"); 
foreach(DataGridViewColumn column in grid.Columns) 
{ 
    sb.AppendLine(" <td>" + column.HeaderText + "</td>"); 
} 
sb.AppendLine(" </tr>");  

foreach(DataGridViewRow row in grid.Rows) 
{ 
    sb.AppendLine(" <tr>"); 
    foreach(DataGridViewCell cell in row.Cells) 
    { 
    sb.AppendLine(" <td width=\"" + cell.Width + "px\">" + cell.Value + "</td>"); 
    } 
    sb.AppendLine(" </tr>"); 
} 
sb.AppendLine("</table>"); 
1

Я думаю, что если вы ищете, вы найдете это на веб-сайте

Если вы не ...

Do the following 
1. Create a stringbuilder, wrap it with htmlTextWriter 
2. Create a htmltable, add a header row, 
3. Iterate through the gridheaders and add cells, write the width in attributes, write other stuff like font, fontsize, forecolor, backcolor etc if you want 
4. Next iterate through the grid rows, add a row each time to table, add cells to row for each grid cells 
5. Call the render method passing the html writer 
6. Take the string builder out and you have a html table layout output.