使用extjs4更改网格

时间:2014-06-18 08:42:06

标签: php mysql json extjs extjs4

我正在使用php mysql后端处理extjs 4.2应用程序。我有一个json回复与学生姓名,考试,科目,标记在一行。同样是由mysql数据库发送的。我正在尝试重新配置网格,如下所示:

enter image description here

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

目前我的json是{“data”:[{“MarkID”:20,“studentID”:2,“ExamName”:“Semester-1”,“Subject”:“Science”,“MaxMarks”: 100,“MarksRecvd”:15},{“MarkID”:21,“studentID”:2,“ExamName”:“Semester-2”,“Subject”:“Social Science”,“MaxMarks”:100,“MarksRecvd “:25}]}

所以每个科目 - 学期组合都是一个记录,我可以轻松地在网格中显示每个记录。

然而,我希望在一个主题中结合各个学期的标记...所以在某种程度上@TheShalit是正确的,json可以改变,所有标记都显示在一行

2 个答案:

答案 0 :(得分:2)

  

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

     

View使用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。有关详细信息:Ext.XTemplate

答案 1 :(得分:1)

你能说明你想要达到的目标吗?

我认为最好的方法是更改json 记录并将数据添加为[subject,s1,s2,s3,s4]