接触ExtJs不久,一直以来都是DotNet阵营,某天在网上看到Coolite就爱不释手了。但是用起来才知道不是那么顺手,可能是刚刚接触的原因。。网上的关于Coolite的资料更是少之又少了,唯一能够指望的只有Coolite官方的论坛。虽然它的官方论坛牛人很多,也通过论坛解决了不少问题,但是总觉得都是一知半解的。
首先我觉得记得几个关键字,属性名都是其次的。关键是理解弄懂控件、对象的运行机制,步骤顺序才是重点。
1.关于Store,GridPanel
GridPanel+Store的机制,我认为是这样的。
1)Store想要定制ID等基本属性(呵呵,这是废话),其中<Reader>用来为读取数据集而定义的数据结构。
2)结构的定义需要JsonReader对象(我常用这个,JsonReader只是其中一种)
3)<Fields>中包含N个字段对象<ext:RecordField>且,必要的属性如NAME,TYPE等
4)<SortInfo>是用来指定排序规则的
例:<ext:Store ID="StoreInP" runat="server" WarningOnDirty="false">
<Reader>
<ext:JsonReader ReaderID="fSIPDId">
<Fields>
<ext:RecordField Name="fSIPDId" />
<ext:RecordField Name="fSIPId" />
<ext:RecordField Name="fPId" />
<ext:RecordField Name="fBUId" Type="int" />
<ext:RecordField Name="fBUName" />
<ext:RecordField Name="fPQuantity" Type="int" />
<ext:RecordField Name="fSBatch" />
<ext:RecordField Name="fSPackQuantity" Type="int" DefaultValue="0" />
<ext:RecordField Name="fSSingleQuantity" Type="int" DefaultValue="0" />
<ext:RecordField Name="fTotalQuantity" Type="int" DefaultValue="0" />
</Fields>
</ext:JsonReader>
</Reader>
<SortInfo Field="fSIPDId" />
</ext:Store>
说明:
1)WarningOnDirty 用来设定是否在数据发生改变时,提示警告。涉及两个相关的属性 DirtyWarningTitle="系统警告" DirtyWarningText="数据发生改变您未保存。您确定要加载/刷新数据?",从属性值大家就能看出是做什么用的了
2)OnRefreshData 是个很主要的事件。数据刷新事件。如果Store对象中包含AutoLoad属性并且值为TRUE的话,将会在页面加载是自动触发该事件。那么我们就可以在后台为这个事件编写诸如获得数据库中的记录集绑定数据的操作。例:
protected void StoreInP_RefreshData(object sender, Coolite.Ext.Web.StoreRefreshDataEventArgs e)
{
this.StoreInP.DataSource = [dataset]\[datatable]\object[];//记录集
this.StoreInP.DataBind();
}