2014-06-18 91 views
1

我正在使用php mysql后端在extjs 4.2应用程序中工作。我有一个与学生姓名,考试,主题,标记在一行的JSON响应。同样由mysql数据库发送。我试图重新网格如下图所示:SEM-1和英语的使用extjs4更改网格

enter image description here

所以基本上标记是一个记录的一部分。但是,Sem-2和英语的标记是第二条记录的一部分。到目前为止,我可以展示科目和学期。学期也可以在网格栏中重新配置。但我的理解是一个完整的记录可以连续显示。也许通过网格tpl完成。你能帮我么。如果需要更改json,我们也可以这样做

当前我的json是{“data”:[{“MarkID”:20,“studentID”:2,“ExamName”:“Semester-1”, “主题”: “科学”, “MaxMarks”:100, “MarksRecvd”:15},{ “MarkID”:21, “studentID”:2 “ExamName”: “学期-2”, “主题” :“社会科学”,“MaxMarks”:100,“MarksRecvd”:25}]}

因此,每个学科 - 学期组合是一个记录,我可以很容易地显示网格中的每个记录。

不过我期待在一个主题的各学期的标记结合起来......所以在这样一个@TheShalit是正确的JSON可以b改变,所有标记都显示在一个行

+0

您可以使用'主题分组网格| sem1 | sem2 |'as grid headers and'name:subject' as group.Check this out:http://docs.sencha.com/extjs/4.2.0/#!/ example/build/KitchenSink/ext-theme-neptune/#grouped-grid – Dev

+0

我很抱歉,但我不明白这个例子。我不确定它将如何转化为如上所示的表格 – user2677125

+0

不,它可能是另一种方式来满足您的要求,如示例中所示使用分组。 – Dev

回答

2

您可以使用dataview用于使用自定义布局模板和格式显示数据。

该视图使用Ext.XTemplate作为其内部模板机制,并绑定到Ext.data.Store,以便随着存储中的数据更改,视图会自动更新以反映更改。

你TPL可能是这样的:

var tableTpl = new Ext.XTemplate(
     '<tpl>'+ 
     '<table class="tableViewDemo" width="100%" height="100%" padding="" border="1">' + 
     '<tr>' + 
     '<td width="50%" height="5%" style="padding-left:2%;">Subject</td>' + 
     '<td width="50%" height="5%" style="padding-left:2%;">Semester-1 Marks</td>' + 
     '</tr>' + 
     '</tpl>' + 
     '<tpl for=".">'+ 
     '<table class="tableViewDemo" width="100%" height="100%" padding="" border="1">' + 
     '<tr>' + 
     '<td width="50%" height="5%" style="padding-left:2%;">{subject}</td>' + 
     '<td width="50%" height="5%" style="padding-left:2%;">{sem1}</td>' + 
     '</tr>' + 
     '</tpl>'    
    ); 

这是在上下文中的简单的演示您的要求:DataView ExJs4.2 Demo

您可以修改TPL accordingly.For更多细节:Ext.XTemplate

+0

您好,谢谢你的努力。 tpl可以和网格一起使用吗?输入新数据和编辑相同的网格更容易 – user2677125

1

你能展示你想达到的目标吗?

我认为最好的办法是变化JSON记录,并添加数据[subject,s1,s2,s3,s4]

+0

嗨@TheShalit,我在我的问题中添加了json响应。从某种意义上说,json需要包含一个学期和相关的学期标记 – user2677125