The source code:
<%@ Page Language="C#" MasterPageFile="~/Manager/MasterPage/PageTemplate.Master" AutoEventWireup="true" CodeBehind="Render.aspx.cs" Inherits="FrameWork.web.Manager.Module.Information.Label.Render" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %></PRE><asp:Content ID="Content1" ContentPlaceHolderID="PageBody" runat="server">
<script type="text/javascript" src="<%=Page.ResolveUrl("~/") %>Manager/inc/FineMessBox/js/common.js"></script>
<script type="text/javascript" src="<%=Page.ResolveUrl("~/") %>Manager/inc/FineMessBox/js/subModal.js"></script>
<script type="text/javascript">
var template = '{1}';</PRE> var change = function(value) {
return String.format(template, (value > 0) ? 'green' : 'red', value);
}</PRE> var pctChange = function(value) {
return String.format(template, (value > 0) ? 'green' : 'red', value + '%');
}
</script>
<ext:TokenScript ID="TokenScript1" runat="server">
<script type="text/javascript">
var applyFilter = function () {
#{Store1}.filterBy(getRecordFilter());
}
var clearFilter = function () {
#{Label_NameFilter}.reset();
#{G_CNameFilter}.reset();
#{SeqNoFilter}.reset();
#{Store1}.clearFilter();
}</PRE> var filterString = function (value, dataIndex, record) {
var val = record.get(dataIndex);
if (typeof val != "string") {
return value.length == 0;
}
return val.toLowerCase().indexOf(value.toLowerCase()) > -1;
}</PRE> var filterDate = function (value, dataIndex, record) {
var val = record.get(dataIndex).clearTime(true).getTime();</PRE> if (!Ext.isEmpty(value, false) && val != value.clearTime(true).getTime()) {
return false;
}
return true;
}</PRE> var filterNumber = function (value, dataIndex, record) {
var val = record.get(dataIndex); </PRE> if (!Ext.isEmpty(value, false) && val != value) {
return false;
}
return true;
}</PRE> var getRecordFilter = function () {
var f = [];</PRE> f.push({
filter: function(record) {
return filterString(#{Label_NameFilter}.getValue(), 'Label_Name', record);
}
});
f.push({
filter: function(record) {
return filterString(#{G_CNameFilter}.getValue(), 'G_CName', record);
}
});
f.push({
filter: function(record) {
return filterString(#{SeqNoFilter}.getValue(), 'SeqNo', record);
}
});
var len = f.length;
return function(record) {
for (var i = 0; i < len; i++) {
if (!f[i].filter(record)) {
return false;
}
}
return true;
};
}
</script>
</ext:TokenScript>
<ext:ScriptManager ID="ScriptManager1" runat="server" />
<ext:Store ID="Store1" runat="server">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="ID" Type="Int" />
<ext:RecordField Name="GroupID" Type="Int" />
<ext:RecordField Name="Label_Name" />
<ext:RecordField Name="G_CName" />
<ext:RecordField Name="SeqNo" Type="Int" />
<ext:RecordField Name="Description" />
<ext:RecordField Name="Extend_Field1" />
<ext:RecordField Name="Extend_Field2" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:GridPanel
ID="GridPanel1"
runat="server"
StoreID="Store1"
StripeRows="true"
Title="Array Grid"
TrackMouseOver="true"
AutoWidth="true"
Height="420"
AutoExpandColumn="Label_Name" Header="false"
>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="Label_Name" Header="????" Width="160" Sortable="true" DataIndex="Label_Name" />
<ext:Column ColumnID="G_CName" Header="????" Width="75" Sortable="true" DataIndex="G_CName" />
<ext:Column ColumnID="SeqNo" Header="????" Width="75" Sortable="true" DataIndex="SeqNo" />
<ext:Column Width="28" DataIndex="Label_Name" Sortable="false" MenuDisabled="true" Header="&nbsp;" Fixed="true">
<Renderer Handler="return '';" />
</ext:Column>
<ext:Column Width="28" DataIndex="SeqNo" Sortable="false" MenuDisabled="true" Header="&nbsp;" Fixed="true">
<Renderer Handler="return '';" />
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:CheckboxSelectionModel HideCheckAll="true" ID="CheckboxSelectionModel1" runat="server" MoveEditorOnEnter="true" />
</SelectionModel>
<View>
<ext:GridView ID="GridView1" runat="server">
<HeaderRows>
<ext:HeaderRow>
<Columns>
<ext:HeaderColumn Cls="x-small-editor">
<Component>
<ext:TextField ID="Label_NameFilter" runat="server" EnableKeyEvents="true">
<Listeners>
<KeyUp Handler="applyFilter();" Buffer="250" />
</Listeners>
</ext:TextField>
</Component>
</ext:HeaderColumn>
<ext:HeaderColumn Cls="x-small-editor">
<Component>
<ext:TextField ID="G_CNameFilter" runat="server" EnableKeyEvents="true">
<Listeners>
<KeyUp Handler="applyFilter();" Buffer="250" />
</Listeners>
</ext:TextField>
</Component>
</ext:HeaderColumn>
<ext:HeaderColumn Cls="x-small-editor">
<Component>
<ext:TextField ID="SeqNoFilter" runat="server" EnableKeyEvents="true">
<Listeners>
<KeyUp Handler="applyFilter();" Buffer="250" />
</Listeners>
</ext:TextField>
</Component>
</ext:HeaderColumn>
<ext:HeaderColumn AutoWidthElement="false">
<Component>
<ext:Button ID="ClearFilterButton" runat="server" Icon="Cancel">
<ToolTips>
<ext:ToolTip ID="ToolTip1" runat="server" Html="Clear filter" />
</ToolTips>
<Listeners>
<Click Handler="clearFilter();" />
</Listeners>
</ext:Button>
</Component>
</ext:HeaderColumn>
<ext:HeaderColumn AutoWidthElement="false">
<Component>
<ext:Button ID="Button2" runat="server" Text="??" Icon="Disk">
<AjaxEvents>
<Click OnEvent="Button2_Click" />
</AjaxEvents>
</ext:Button>
</Component>
</ext:HeaderColumn>
</Columns>
</ext:HeaderRow>
</HeaderRows>
</ext:GridView>
</View>
<BottomBar>
<ext:PagingToolBar ID="PagingToolBar1" runat="server" PageSize="16" StoreID="Store1" />
</BottomBar>
</ext:GridPanel>
</asp:Content>
</PRE>