细节决定成败
把遇到的一些细节上面的问题 总结下, 虽是小问题,但往往 就是小问题 会阻止你前进的步伐……
一、前台代码实现:
<ext:GridPanel ID="GridPanel1" TrackMouseOver="true" StripeRows="true" runat="server"
Border="false" Title="人员信息" AutoScroll="true">
<Store>
<ext:Store ID="Store1" runat="server" OnRefreshData="MyData_Refresh">
<Reader>
<ext:JsonReader>
<Fields>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
<LoadMask ShowMask="true" />
<BottomBar>
<ext:PagingToolbar ID="PagingToolbar1" runat="server" PageSize="30" StoreID="Store1">
</ext:PagingToolbar>
</BottomBar>
<ColumnModel>
<Columns>
</Columns>
</ColumnModel>
<Listeners>
<DblClick Handler="addTab('idEmployeeInfo', 'EmployeeDetail.aspx','员工明细');" />
</Listeners>
<View>
<ext:LockingGridView ID="LockingGridView1" runat="server">
</ext:LockingGridView>
</View>
</ext:GridPanel>
二、后台代码实现:
Column col = new Column();
col.Header = fieldTable.Rows[i]["FieldCaption"].ToString();
string index = fieldTable.Rows[i]["FieldAlias"].ToString();
col.DataIndex = index;
if (index == "ProNo" || index == "ItemNo" || index == "CustItemNo" || index == "Item_C_Name")
col.Locked = true;
col.Width = Int32.Parse(string.IsNullOrEmpty(fieldTable.Rows[i]["ColWidth"].ToString()) ? "80" : fieldTable.Rows[i]["ColWidth"].ToString());
if (fieldTable.Rows[i]["ControlType"].ToString().Contains("Combobox"))
col.Renderer = new Renderer() { Fn = "rendererMeterTypeCombobox" };
col.Editor.Add(GetFiledControl(fieldTable.Rows[i]));
base.ColumnModel.Columns.Add(col);
别忘了给你的GridView添加这个属性 base.View.Add(new LockingGridView());//列锁定属性
效果:
Ext.Net默认日期显示格式是英文的 “Thu Nov 3 00:00:00 UTC+0800 2011” 第一感觉是直接格式化转化。有属性DateFormat 但是设置了还是不管用。此时注意:不要被Ext的Column忽悠了,它还有一个DateColumn : DateColumn dtCol = new DateColumn(); dtCol.Format = "yyyy-MM-dd"; 即可
处理下效果:
见图说话
需要在红框左边添加 “行号”
GridView.ColumnModel.Columns.Add(new RowNumbererColumn());
效果:
反之 删除就不显示
2011-11-05
//列统计计算
function GridSum() {
var src = storehide.getValue();//查找那些列需要进行统计 eg:“txtTotProdAmt,sum,NTSaleAmt|txtTotVAT,sum,VAT"
var str = src.split('|');
for (var i = 0; i < str.length; i++) {
var strs = str[i].split(',');
var sum = 0;
store2.each(function(record) {//Grid源Store ID:store2
if (strs[1] == "sum") {
if (Number(record.get(strs[2])) > 0)
sum += Number(record.get(strs[2]));
}
});
Ext.getCmp(strs[0]).setValue(sum);
}
}
HTML
<ext:Store runat="server" ID="store2" AutoLoad="true" OnRefreshData="stGrid_Refresh"
ShowWarningOnFailure="false" SkipIdForNewRecords="false" RefreshAfterSaving="Always"
OnBeforeStoreChanged="stGrid_BeforeChanged">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="ProNo" Type="String"/>
<ext:RecordField Name="ItemNo" Type="String"/>
<ext:RecordField Name="CustItemNo" Type="String"/>
<ext:RecordField Name="Item_C_Name" Type="String"/>
<ext:RecordField Name="Item_C_Spec" Type="String"/>
<ext:RecordField Name="BUnit" Type="String"/>
<ext:RecordField Name="CBUnit" Type="String"/>
<ext:RecordField Name="UTRM" Type="String"/>
<ext:RecordField Name="UTR" Type="String"/>
<ext:RecordField Name="Unit" Type="String"/>
<ext:RecordField Name="CUnit" Type="String"/>
<ext:RecordField Name="Brand" Type="String"/>
<ext:RecordField Name="Color" Type="String"/>
<ext:RecordField Name="Material" Type="String"/>
<ext:RecordField Name="PTFID" Type="String"/>
<ext:RecordField Name="ManufNote" Type="String"/>
<ext:RecordField Name="Packing" Type="String"/>
<ext:RecordField Name="AddFld1" Type="String"/>
<ext:RecordField Name="AddFld2" Type="String"/>
<ext:RecordField Name="AddFld3" Type="String"/>
<ext:RecordField Name="AddFld4" Type="String"/>
<ext:RecordField Name="AddFld5" Type="String"/>
<ext:RecordField Name="AddFld6" Type="String"/>
<ext:RecordField Name="AddFld7" Type="String"/>
<ext:RecordField Name="AddFld8" Type="String"/>
<ext:RecordField Name="AddFld9" Type="String"/>
<ext:RecordField Name="AddFld10" Type="String"/>
<ext:RecordField Name="AddFld11" Type="String"/>
<ext:RecordField Name="AddFld12" Type="String"/>
<ext:RecordField Name="AddFld13" Type="String"/>
<ext:RecordField Name="AddFld14" Type="String"/>
<ext:RecordField Name="AddFld15" Type="String"/>
<ext:RecordField Name="AddFld16" Type="String"/>
<ext:RecordField Name="AddFld17" Type="String"/>
<ext:RecordField Name="AddFld18" Type="String"/>
<ext:RecordField Name="AddFld19" Type="String"/>
<ext:RecordField Name="AddFld20" Type="String"/>
<ext:RecordField Name="AddFld21" Type="String"/>
<ext:RecordField Name="AddFld22" Type="String"/>
<ext:RecordField Name="AddFld23" Type="String"/>
<ext:RecordField Name="AddFld24" Type="String"/>
<ext:RecordField Name="AddFld25" Type="String"/>
<ext:RecordField Name="BSaleQty" Type="Float"/>
<ext:RecordField Name="BSalePrice" Type="Float"/>
<ext:RecordField Name="SaleQty" Type="Float"/>
<ext:RecordField Name="OrgSalePrice" Type="Float"/>
<ext:RecordField Name="OffRT" Type="Float"/>
<ext:RecordField Name="OffAmt" Type="Float"/>
<ext:RecordField Name="SalePrice" Type="Float"/>
<ext:RecordField Name="SaleAmt" Type="Float"/>
<ext:RecordField Name="VATRT" Type="Float"/>
<ext:RecordField Name="VAT" Type="Float"/>
<ext:RecordField Name="NTSalePrice" Type="Float"/>
<ext:RecordField Name="NTSaleAmt" Type="Float"/>
</Fields>
</ext:JsonReader>
</Reader>
<Listeners>
<AfterRender Handler="GridSum();"/>
<Update Handler="GridSum();"/>
</Listeners>
</ext:Store>
源码:
var afterEdit = function(e) {
var hid = hidRow2.getValue();
var strList = hid.split('|');
var strs;
var str;
var varRecord;
var varSelected;
var index;
var sum;
varRecord = gp2.getSelectionModel().getSelected();//gp2: Grid ID
index = store2.indexOf(varRecord); //获取选中了那一行 store2 :Grid数据源ID
if (index < 0)
return;
for (var i = 0; i < strList.length; i++) {
strs = strList[i].split(',');
if (strs[0].indexOf("["+e.field+"]") == -1)
continue;
if (strs.length < 2)
return;
str = strs[2].split('#'); //strs[] = [NTSaleAmt]+[VAT],SaleAmt,NTSaleAmt#VAT
for (var j = 0; j < str.length; j++) {//循环替换
varSelected = store2.getAt(index).get(str[j]); //取指定的值
strs[0] = strs[0].replace('[' + str[j] + ']', varSelected).replace(str[j], varSelected);
}
store2.getAt(index).set(strs[1], eval(strs[0])); //给指定赋值 strs[] = [NTSaleAmt]+[VAT],SaleAmt,NTSaleAmt#VAT
}
};
注意:
事件要给到Grid 不是Store
GridPanel.Listeners.AfterEdit.Fn = "afterEdit";
源码:
<script language="javascript" type="text/javascript">
function details() {
var gsm = gpList.getSelectionModel(); //gpList:GridPanel ID
var rows = gsm.getSelections();
if (rows.length > 0) {
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
var data = row.get('ScNo');//ScNo 要取值的列名
alert(data);
}
}
}
</script>
需求效果:见图
源码:
方案一:
给上面主GridPanel 添加 属性
<Listeners>
<Click Fn="details" />
</Listeners>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel2" runat="server" SingleSelect="true">
</ext:RowSelectionModel>
</SelectionModel>
这个不可缺少
JS代码:
<script language="javascript" type="text/javascript"> //GridPanel 加载 方案一 function details() { var gsm = gpList.getSelectionModel(); //gpList:GridPanel ID var rows = gsm.getSelections(); if (rows.length > 0) { for (var i = 0; i < rows.length; i++) { var row = rows[i]; var data = row.get('ScNo'); //ScNo 要取值的列名 Ext.net.DirectMethods.GetInfosByID(data); } } } </script>
CS:
#region GridPanel 加载 方案一 [DirectMethod] public void GetInfosByID(string strID) { if (string.IsNullOrEmpty(strID)) return; DataRow[] itemPanelList = structTabPageTable.Select("TreeLevel=2 AND StrucLevel<3"); for (int i = 0; i < itemPanelList.Length; i++) { DataTable mould = MouldDao.GetMouldTables(structStr, itemPanelList[i]["SQLNo"].ToString()); DataTable field; string index = string.Empty; if (itemPanelList[i]["IsStruc"].ToString().ToLower() == "true") { index = itemPanelList[i]["SQLNo"].ToString(); field = MouldDao.GetMouldFiledsOrderByOrderNo(structStr, index); dataCommand = MouldDao.GetDataCommand(mould, field); dataCommand.Append(" WHERE ScNo='" + strID + "'"); DataTable source = MouldDao.GetDataSource(dataCommand.ToString()); if (i == 2) { storeGoods.DataSource = source; storeGoods.DataBind(); } if (i == 4) { storePayments.DataSource = source; storePayments.DataBind(); } if (i == 5) { storeRecord.DataSource = source; storeRecord.DataBind(); } if (i == 6) { storeDomestic.DataSource = source; storeDomestic.DataBind(); } } } } #endregion
方案二:
根据在线DEMO
前台代码
<form id="form1" runat="server">
<ext:ResourceManager ID="RMEmployeeInfos" runat="server" />
<div>
<ext:Store runat="server" ID="storeDomestic" AutoLoad="true" OnRefreshData="stGrid_Refresh"
ShowWarningOnFailure="false" SkipIdForNewRecords="false" RefreshAfterSaving="Always"
OnBeforeStoreChanged="stGrid_BeforeChanged">
<Reader>
<ext:JsonReader IDProperty="ScNo">
<Fields>
<ext:RecordField Name="ScNo" />
<ext:RecordField Name="CustID" Type="String" />
<ext:RecordField Name="BriefName" Type="String" />
<ext:RecordField Name="Item_C_Name" Type="String" />
<ext:RecordField Name="CreateDate" Type="Date" />
<ext:RecordField Name="SMTyp" Type="String" />
<ext:RecordField Name="CustPONo" Type="String" />
<ext:RecordField Name="Memo" Type="String" />
<ext:RecordField Name="OwnerID" Type="String" />
<ext:RecordField Name="OwnerNam" Type="String" />
<ext:RecordField Name="KeyInID" Type="String" />
<ext:RecordField Name="keyInName" Type="String" />
<ext:RecordField Name="KeyInDate" Type="Date" />
<ext:RecordField Name="keyInTime" Type="Date" />
<ext:RecordField Name="LastEditMan" Type="String" />
<ext:RecordField Name="LastEditDate" Type="Date" />
<ext:RecordField Name="AuditState" Type="String" />
<ext:RecordField Name="IsDeleted" Type="String" />
<ext:RecordField Name="SaleID" Type="String" />
<ext:RecordField Name="SaleName" Type="String" />
<ext:RecordField Name="DeptID" Type="String" />
<ext:RecordField Name="DeptName" Type="String" />
<ext:RecordField Name="CUR" Type="String" />
<ext:RecordField Name="RMBEXR" Type="String" />
<ext:RecordField Name="USEXR" Type="String" />
<ext:RecordField Name="TotProdAmt" Type="String" />
<ext:RecordField Name="TotAddFee" Type="String" />
<ext:RecordField Name="TotDeductFee" Type="String" />
<ext:RecordField Name="TotVAT" Type="String" />
<ext:RecordField Name="PaymentMode" Type="String" />
<ext:RecordField Name="DeliveryAddr" Type="String" />
<ext:RecordField Name="FinishDate" Type="Date" />
<ext:RecordField Name="ExpCompany" Type="String" />
<ext:RecordField Name="CompanyBank" Type="String" />
<ext:RecordField Name="CAccountNo" Type="String" />
<ext:RecordField Name="CBankAddr" Type="String" />
<ext:RecordField Name="CBankTel" Type="String" />
<ext:RecordField Name="BContact" Type="String" />
<ext:RecordField Name="BMail" Type="String" />
<ext:RecordField Name="BName" Type="String" />
<ext:RecordField Name="BBank" Type="String" />
<ext:RecordField Name="BAccountNo" Type="String" />
<ext:RecordField Name="AttachCount" Type="Float" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store runat="server" ID="storeGoods" AutoLoad="true" ShowWarningOnFailure="false"
OnRefreshData="storeGoods_Refresh" SkipIdForNewRecords="false" RefreshAfterSaving="Always">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="ProNo" Type="String" />
<ext:RecordField Name="ItemNo" Type="String" />
<ext:RecordField Name="CustItemNo" Type="String" />
<ext:RecordField Name="Item_C_Name" Type="String" />
<ext:RecordField Name="Item_C_Spec" Type="String" />
<ext:RecordField Name="BUnit" Type="String" />
<ext:RecordField Name="CBUnit" Type="String" />
<ext:RecordField Name="UTRM" Type="String" />
<ext:RecordField Name="UTR" Type="String" />
<ext:RecordField Name="Unit" Type="String" />
<ext:RecordField Name="CUnit" Type="String" />
<ext:RecordField Name="Brand" Type="String" />
<ext:RecordField Name="Color" Type="String" />
<ext:RecordField Name="Material" Type="String" />
<ext:RecordField Name="PTFID" Type="String" />
<ext:RecordField Name="ManufNote" Type="String" />
<ext:RecordField Name="Packing" Type="String" />
<ext:RecordField Name="AddFld1" Type="String" />
<ext:RecordField Name="AddFld2" Type="String" />
<ext:RecordField Name="AddFld3" Type="String" />
<ext:RecordField Name="AddFld4" Type="String" />
<ext:RecordField Name="AddFld5" Type="String" />
<ext:RecordField Name="AddFld6" Type="String" />
<ext:RecordField Name="AddFld7" Type="String" />
<ext:RecordField Name="AddFld8" Type="String" />
<ext:RecordField Name="AddFld9" Type="String" />
<ext:RecordField Name="AddFld10" Type="String" />
<ext:RecordField Name="AddFld11" Type="String" />
<ext:RecordField Name="AddFld12" Type="String" />
<ext:RecordField Name="AddFld13" Type="String" />
<ext:RecordField Name="AddFld14" Type="String" />
<ext:RecordField Name="AddFld15" Type="String" />
<ext:RecordField Name="AddFld16" Type="String" />
<ext:RecordField Name="AddFld17" Type="String" />
<ext:RecordField Name="AddFld18" Type="String" />
<ext:RecordField Name="AddFld19" Type="String" />
<ext:RecordField Name="AddFld20" Type="String" />
<ext:RecordField Name="AddFld21" Type="String" />
<ext:RecordField Name="AddFld22" Type="String" />
<ext:RecordField Name="AddFld23" Type="String" />
<ext:RecordField Name="AddFld24" Type="String" />
<ext:RecordField Name="AddFld25" Type="String" />
<ext:RecordField Name="BSaleQty" Type="Float" />
<ext:RecordField Name="BSalePrice" Type="Float" />
<ext:RecordField Name="SaleQty" Type="Float" />
<ext:RecordField Name="OrgSalePrice" Type="Float" />
<ext:RecordField Name="OffRT" Type="Float" />
<ext:RecordField Name="OffAmt" Type="Float" />
<ext:RecordField Name="SalePrice" Type="Float" />
<ext:RecordField Name="SaleAmt" Type="Float" />
<ext:RecordField Name="VATRT" Type="Float" />
<ext:RecordField Name="VAT" Type="Float" />
<ext:RecordField Name="NTSalePrice" Type="Float" />
<ext:RecordField Name="NTSaleAmt" Type="Float" />
<ext:RecordField Name="CQNo" Type="String" />
<ext:RecordField Name="SONo" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
<BaseParams>
<ext:Parameter Name="ScNo" Value="Ext.getCmp('#{gpList}') && #{gpList}.getSelectionModel().hasSelection() ? #{gpList}.getSelectionModel().getSelected().id : -1"
Mode="Raw" />
</BaseParams>
<Listeners>
<LoadException Handler="Ext.Msg.alert('加载失败', e.message || response.statusText);" />
</Listeners>
</ext:Store>
<ext:Store runat="server" ID="storePayments" AutoLoad="true" ShowWarningOnFailure="false" OnRefreshData="storePayments_Refresh"
SkipIdForNewRecords="false" RefreshAfterSaving="Always">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="CostTyp" Type="Int" />
<ext:RecordField Name="CostDesc" Type="String" />
<ext:RecordField Name="Ratio" Type="Float" />
<ext:RecordField Name="CostAmt" Type="String" />
<ext:RecordField Name="Memo" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
<BaseParams>
<ext:Parameter Name="ScNo" Value="Ext.getCmp('#{gpList}') && #{gpList}.getSelectionModel().hasSelection() ? #{gpList}.getSelectionModel().getSelected().id : -1"
Mode="Raw" />
</BaseParams>
<Listeners>
<LoadException Handler="Ext.Msg.alert('加载失败', e.message || response.statusText);" />
</Listeners>
</ext:Store>
<ext:Store runat="server" ID="storeRecord" AutoLoad="true" ShowWarningOnFailure="false" OnRefreshData="storeRecord_Refresh"
SkipIdForNewRecords="false" RefreshAfterSaving="Always">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="pPayDate" Type="Date" />
<ext:RecordField Name="PayDesc" Type="String" />
<ext:RecordField Name="Ratio" Type="String" />
<ext:RecordField Name="PayAmt" Type="String" />
<ext:RecordField Name="Memo" Type="String" />
<ext:RecordField Name="IsPay" Type="String" />
<ext:RecordField Name="PayDate" Type="Date" />
<ext:RecordField Name="CheckAmt" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
<BaseParams>
<ext:Parameter Name="ScNo" Value="Ext.getCmp('#{gpList}') && #{gpList}.getSelectionModel().hasSelection() ? #{gpList}.getSelectionModel().getSelected().id : -1"
Mode="Raw" />
</BaseParams>
<Listeners>
<LoadException Handler="Ext.Msg.alert('加载失败', e.message || response.statusText);" />
</Listeners>
</ext:Store>
<ext:Store runat="server" ID="storeContract" AutoLoad="true" ShowWarningOnFailure="false" OnRefreshData="storeContract_Refresh"
SkipIdForNewRecords="false" RefreshAfterSaving="Always">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="Term" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
<BaseParams>
<ext:Parameter Name="ScNo" Value="Ext.getCmp('#{gpList}') && #{gpList}.getSelectionModel().hasSelection() ? #{gpList}.getSelectionModel().getSelected().id : -1"
Mode="Raw" />
</BaseParams>
<Listeners>
<LoadException Handler="Ext.Msg.alert('加载失败', e.message || response.statusText);" />
</Listeners>
</ext:Store>
<ext:Viewport ID="Viewport1" runat="server" Layout="FitLayout">
<Items>
<ext:RowLayout ID="RowLayout1" runat="server">
<Rows>
<ext:LayoutRow RowHeight="0.04">
<ext:Panel runat="server" ID="TopBar">
</ext:Panel>
</ext:LayoutRow>
<ext:LayoutRow RowHeight="0.957">
<ext:Panel runat="server" Border="false">
<Items>
<ext:BorderLayout runat="server">
<West MinWidth="10" MaxWidth="500" Split="true" CollapseMode="Mini">
<ext:Panel ID="Panel5" runat="server" Width="230" AutoScroll="true">
<Items>
<ext:TabPanel runat="server" Padding="4" Border="false">
<Items>
<ext:Panel runat="server" Title="查询" Border="false">
<Items>
<ext:Label ID="Label1" runat="server" Html="<font style='font-weight:bolder;font-size:13px' >按下面任何标准进行搜索</font>" />
<ext:Panel ID="Panel7" runat="server" Border="false" Padding="5">
<Items>
<ext:FormPanel ID="FormPanel3" Border="false" runat="server" Padding="5" LabelWidth="70">
<Items>
<ext:CompositeField ID="CompositeField1" AnchorHorizontal="100%" runat="server" LabelAlign="Top"
FieldLabel="关键字">
<Items>
<ext:TextField ID="txtKeyWord" EmptyText="关键字" LabelAlign="Top" runat="server" Width="120" />
</Items>
</ext:CompositeField>
<ext:CompositeField ID="CompositeField2" runat="server" FieldLabel="在这儿查找">
<Items>
<ext:MultiCombo runat="server" Width="120" ID="cobSelect" EmptyText="请选择寻找范围" SelectionMode="Checkbox">
<Items>
<ext:ListItem Text="客户编号" Value="1" />
<ext:ListItem Text="审核标志" Value="2" />
<ext:ListItem Text="业务员" Value="3" />
<ext:ListItem Text="客户全名" Value="4" />
</Items>
</ext:MultiCombo>
</Items>
</ext:CompositeField>
<ext:CompositeField ID="CompositeField3" runat="server" FieldLabel="精确查找">
<Items>
<ext:Checkbox ID="chkExactMatch" runat="server" FieldLabel="精确查找">
</ext:Checkbox>
</Items>
</ext:CompositeField>
</Items>
</ext:FormPanel>
</Items>
</ext:Panel>
<ext:Panel ID="Panel8" Border="false" runat="server" Title="更多高级选项" FormGroup="true"
Padding="5">
<Items>
<ext:FormPanel ID="FormPanel1" Border="false" runat="server" Padding="5" LabelWidth="70">
<Items>
<ext:CompositeField ID="CompositeField4" AnchorHorizontal="100%" runat="server" FieldLabel="客户">
<Items>
<ext:TriggerField ID="tfDeptID" EmptyText="客户" runat="server" Width="120">
<Triggers>
<ext:FieldTrigger Icon="Ellipsis" Qtip="客户" />
</Triggers>
</ext:TriggerField>
</Items>
</ext:CompositeField>
</Items>
</ext:FormPanel>
</Items>
</ext:Panel>
<ext:Panel runat="server" Padding="30" Region="Center" Border="false">
<Items>
<ext:CompositeField ID="CompositeField6" runat="server" Region="Center">
<Items>
<ext:Button ID="btn_Search" runat="server" Text="搜索" Width="70">
<Listeners>
<Click Handler="Ext.net.DirectMethods.btnSearch()" />
</Listeners>
</ext:Button>
<ext:Button ID="btmReset" runat="server" Text="清空" Width="70">
<Listeners>
<Click Handler="Ext.net.DirectMethods.btnReset()" />
</Listeners>
</ext:Button>
</Items>
</ext:CompositeField>
</Items>
</ext:Panel>
</Items>
</ext:Panel>
</Items>
</ext:TabPanel>
</Items>
</ext:Panel>
</West>
<Center>
<ext:Panel runat="server" Border="false" AutoScroll="true">
<Items>
<ext:BorderLayout ID="BorderLayout1" runat="server">
<Center>
<ext:Panel ID="Panel3" Border="false" runat="server" Layout="FitLayout">
<Items>
<ext:GridPanel runat="server" ID="gpList" StoreID="storeDomestic" TrackMouseOver="true">
<ColumnModel runat="server">
<Columns>
<ext:RowNumbererColumn Locked="true" />
<ext:Column DataIndex="ScNo" Header="销合同编号" Locked="true" />
<ext:Column DataIndex="CustID" Header="客户编号" Locked="true" />
<ext:Column DataIndex="BriefName" Header="客户简称" Locked="true" />
<ext:DateColumn DataIndex="CreateDate" Header="签约日期" Locked="true" Format="yyyy-MM-dd" />
<ext:Column DataIndex="SMTyp" Header="销售方式" />
<ext:Column DataIndex="CustPONo" Header="客户订单编号" />
<ext:Column DataIndex="Memo" Header="备注" />
<ext:Column DataIndex="OwnerID" Header="拥有人" />
<ext:Column DataIndex="OwnerName" Header="拥有人名称" />
<ext:Column DataIndex="KeyInID" Header="录入人工号" />
<ext:Column DataIndex="keyInName" Header="录入人名称" />
<ext:DateColumn DataIndex="KeyInDate" Header="录入日期" Format="yyyy-MM-dd" />
<ext:DateColumn DataIndex="keyInTime" Header="录入时间" Format="yyyy-MM-dd" />
<ext:Column DataIndex="LastEditMan" Header="最后一次修改人" />
<ext:DateColumn DataIndex="LastEditDate" Header="最后一次