开发者

MVC - Datagrid binding without a model

Ok, I'll explain. I need to create a datagrid in MVC on the fly (potentially multiple datagrids on a view) depending on a XML file being read in. The file gets looped through and may contain multiple grids of data, the headers and rows are set in the file. The problem being that my application won't know the content of the XML file before reading it so I can't apply it to an IEnumerable model. The idea being to make it generic so that it can read in any XML file I pass to it set up as below and put the data in a sortable datagrid. Is this at all possible with current controls out there? I have tried Teleriks MVC grid and while I can read the data into the grid, I cann开发者_JAVA技巧ot sort the data as this feature will only work when passed a DTO. I have a feeling what I'm looking for can't be done (unless I write a custom HTMLHelper or something) but no harm in asking I guess

My xml will be as such

<xml>
  <REPORT>
     <HEADERS>
       <HEAD>Col1</HEAD>           
       <HEAD>Col2</HEAD>
     </HEADERS>         
     <ROWS>
       <ROW>Data1</ROW>           
       <ROW>Data2</ROW>
     </ROWS>
  </REPORT>
 </xml>

Thanks


I would advise using the jquery grid. Then write a class to parse the xml and generate the grid javascript in the view, and a second action to parse the xml (again) and generate the json result. MVCCrud may help with the idea there is a generic jquery grid in there but it works off an IQueryable list so would need to be adapted.


I haven't seen a helper extension out there that does what you need.

There are some good ones that work with generic collections (such as Telerik's or MVCContrib's). The sample you provide cannot be translated in to a collection that would be handled by these however: the row needs to have cells that can be matched to the header elements.

<xml>
  <REPORT>
     <HEADERS>
       <HEAD>Col1</HEAD>           
       <HEAD>Col2</HEAD>
     </HEADERS>         
     <ROWS>
       <ROW><CELL>Data1</CELL><CELL>Data2</CELL></ROW>           
       <ROW><CELL>Data2</CELL><CELL>Data4</CELL></ROW>
     </ROWS>
  </REPORT>
 </xml>

If the XML can be deserialized into a generic collection, it is easy to populate the grid.

Hope this helps.


I'd look into the JQuery Grid. You have to munge the data into the format that it wants, but it gives you a lot of flexibility and nice UI for free. You will still need to write sort code, though.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜