2009-11-12 54 views
1

好吧,我会解释。我需要根据正在读入的XML文件,在MVC中动态地创建一个数据网格(视图中可能包含多个数据网格)。文件循环遍历并可能包含多个网格数据,头文件和行设置在文件中。问题是我的应用程序在阅读之前不会知道XML文件的内容,所以我不能将它应用于IEnumerable模型。这个想法是使它成为通用的,以便它可以读取我传递给它的任何XML文件,如下所示,并将数据放入可排序的数据网格中。这是否完全可以通过当前的控制?我尝试过Teleriks MVC网格,虽然我可以将数据读入网格,但是我无法对数据进行排序,因为此功能只有在通过DTO时才有效。我有一种感觉就是我正在寻找能不能做到(除非我写一个自定义的HtmlHelper或东西),但没有伤害在问我想MVC - 没有模型的Datagrid绑定

我将XML作为这样

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

谢谢

回答

1

我会建议使用jQuery网格。然后编写一个类来解析xml并在视图中生成网格javascript,然后再解析xml(再次)并生成json结果。 MVCCrud可能有助于这个想法,那里有一个通用的jQuery网格,但它可以在IQueryable列表中工作,因此需要进行修改。

+0

谢谢你们,今天早上我会用这个做一个测试项目,这里的教程似乎是我要找的内容http://blogs.teamb.com/craigstuntz/2009/04/15/ 38212 / – Israfel 2009-11-13 09:15:17

1

我还没有看到一个助手的扩展那里做你所需要的。

有一些很好的与泛型集合(如Telerik的或MVCContrib's)一起工作。您提供的示例无法转换为可由这些处理的集合:该行需要具有可与头元素匹配的单元格。

<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> 

如果XML可以反序列化为泛型集合,则很容易填充网格。

希望这会有所帮助。

+0

感谢您的回复,我目前正在编写我自己的排序/过滤网格,这项工作是通常的工作,我的手与我如何接收报告相关。 – Israfel 2009-11-12 15:13:10

1

我想看看JQuery Grid。您必须将数据转换为所需的格式,但它为您提供了很多灵活性和免费的好用户界面。不过,您仍然需要编写排序代码。