zoukankan      html  css  js  c++  java
  • ext.net 开发学习——GridView 操作(七)

    细节决定成败

    把遇到的一些细节上面的问题 总结下, 虽是小问题,但往往 就是小问题 会阻止你前进的步伐……

    壹:GridView 列锁定

    一、前台代码实现:

     <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());//列锁定属性

    效果:

    贰:GridView日期格式

    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>
    柒:One to Many

    需求效果:见图

                        

    源码:

    方案一:

    给上面主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="最后一次修改日期" Format="yyyy-MM-dd" />
                                                                                    <ext:Column DataIndex="AuditState" Header="审核标志" />
                                                                                    <ext:Column DataIndex="IsDeleted" Header="作废" />
                                                                                    <ext:Column DataIndex="SaleID" Header="业务员" />
                                                                                    <ext:Column DataIndex="SaleName" Header="业务员名称" />
                                                                                    <ext:Column DataIndex="DeptID" Header="销售部门" />
                                                                                    <ext:Column DataIndex="DeptName" Header="销售部门名称" />
                                                                                    <ext:Column DataIndex="CUR" Header="结算币种" />
                                                                                    <ext:Column DataIndex="RMBEXR" Header="人民币汇率" />
                                                                                    <ext:Column DataIndex="USEXR" Header="美元汇率" />
                                                                                    <ext:Column DataIndex="TotProdAmt" Header="商品总金额" />
                                                                                    <ext:Column DataIndex="TotAddFee" Header="其他增加款项" />
                                                                                    <ext:Column DataIndex="TotDeductFee" Header="其他扣除款项" />
                                                                                    <ext:Column DataIndex="TotVAT" Header="销项税总计" />
                                                                                    <ext:Column DataIndex="PaymentMode" Header="付款方式" />
                                                                                    <ext:Column DataIndex="DeliveryAddr" Header="送货地址" />
                                                                                    <ext:DateColumn DataIndex="FinishDate" Header="交货期" Format="yyyy-MM-dd" />
                                                                                    <ext:Column DataIndex="ExpCompany" Header="收款公司" />
                                                                                    <ext:Column DataIndex="CompanyBank" Header="收款银行" />
                                                                                    <ext:Column DataIndex="CAccountNo" Header="收款银行账号" />
                                                                                    <ext:Column DataIndex="CBankAddr" Header="收款银行地址" />
                                                                                    <ext:Column DataIndex="CBankTel" Header="收款银行电话" />
                                                                                    <ext:Column DataIndex="BContact" Header="客户联系人" />
                                                                                    <ext:Column DataIndex="BMail" Header="客户联系人邮箱" />
                                                                                    <ext:Column DataIndex="BName" Header="客户全名" />
                                                                                    <ext:Column DataIndex="BBank" Header="客户银行名" />
                                                                                    <ext:Column DataIndex="BAccountNo" Header="客户银行账户" />
                                                                                    <ext:Column DataIndex="AttachCount" Header="附件数" />
                                                                                </Columns>
                                                                            </ColumnModel>
                                                                            <View>
                                                                                <ext:LockingGridView />
                                                                            </View>
                                                                            <BottomBar>
                                                                                <ext:PagingToolbar runat="server" PageSize="30">
                                                                                </ext:PagingToolbar>
                                                                            </BottomBar>
                                                                            <%--       <Listeners>
                                                                                <Click Fn="details" />
                                                                            </Listeners>--%>
                                                                            <SelectionModel>
                                                                                <ext:RowSelectionModel ID="RowSelectionModel2" runat="server" SingleSelect="true">
                                                                                    <Listeners>
                                                                                        <RowSelect Handler="if (#{pnlGoods}.isVisible()) {#{storeGoods}.reload();}if (#{pnlPayments}.isVisible()) {#{storePayments}.reload();}if (#{pnlRecord}.isVisible()) {#{storeRecord}.reload();}if (#{pnlContract}.isVisible()) {#{storeContract}.reload();}"
                                                                                            Buffer="250" />
                                                                                    </Listeners>
                                                                                </ext:RowSelectionModel>
                                                                            </SelectionModel>
                                                                            <LoadMask ShowMask="true" />
                                                                        </ext:GridPanel>
                                                                    </Items>
                                                                </ext:Panel>
                                                            </Center>
                                                            <South Split="true" CollapseMode="Mini">
                                                                <ext:TabPanel runat="server" Height="300" Border="false">
                                                                    <Items>
                                                                        <ext:Panel runat="server" ID="pnlGoods" Title="商品清单" Border="false">
                                                                            <Items>
                                                                                <ext:GridPanel runat="server" TrackMouseOver="true" Height="270" StoreID="storeGoods">
                                                                                    <ColumnModel runat="server">
                                                                                        <Columns>
                                                                                            <ext:RowNumbererColumn Locked="true" />
                                                                                            <ext:Column DataIndex="ProNo" Header="标准型号" Locked="true" />
                                                                                            <ext:Column DataIndex="ItemNo" Header="商品编号" Locked="true" />
                                                                                            <ext:Column DataIndex="CustItemNo" Header="客户货号" Locked="true" />
                                                                                            <ext:Column DataIndex="Item_C_Name" Header="商品中文名" Locked="true" />
                                                                                            <ext:Column DataIndex="Item_C_Spec" Header="商品中文规格" />
                                                                                            <ext:Column DataIndex="BUnit" Header="基本计量单位" />
                                                                                            <ext:Column DataIndex="CBUnit" Header="中文基本计量单位" />
                                                                                            <ext:Column DataIndex="UTRM" Header="计量单位转换" />
                                                                                            <ext:Column DataIndex="UTR" Header="计量单位转换率" />
                                                                                            <ext:Column DataIndex="Unit" Header="计量单位" />
                                                                                            <ext:Column DataIndex="CUnit" Header="中文计量单位" />
                                                                                            <ext:Column DataIndex="Brand" Header="商标" />
                                                                                            <ext:Column DataIndex="Color" Header="颜色" />
                                                                                            <ext:Column DataIndex="Material" Header="材料" />
                                                                                            <ext:Column DataIndex="PTFID" Header="包装方案" />
                                                                                            <ext:Column DataIndex="ManufNote" Header="生产要求" />
                                                                                            <ext:Column DataIndex="Packing" Header="包装要求" />
                                                                                            <ext:Column DataIndex="AddFld1" Header="附近属性1" />
                                                                                            <ext:Column DataIndex="AddFld2" Header="附近属性2" />
                                                                                            <ext:Column DataIndex="AddFld3" Header="附近属性3" />
                                                                                            <ext:Column DataIndex="AddFld4" Header="附近属性4" />
                                                                                            <ext:Column DataIndex="AddFld5" Header="附近属性5" />
                                                                                            <ext:Column DataIndex="AddFld6" Header="附近属性6" />
                                                                                            <ext:Column DataIndex="AddFld7" Header="附近属性7" />
                                                                                            <ext:Column DataIndex="AddFld8" Header="附近属性8" />
                                                                                            <ext:Column DataIndex="AddFld9" Header="附近属性9" />
                                                                                            <ext:Column DataIndex="AddFld10" Header="附近属性10" />
                                                                                            <ext:Column DataIndex="AddFld11" Header="附近属性11" />
                                                                                            <ext:Column DataIndex="AddFld12" Header="附近属性12" />
                                                                                            <ext:Column DataIndex="AddFld13" Header="附近属性13" />
                                                                                            <ext:Column DataIndex="AddFld14" Header="附近属性14" />
                                                                                            <ext:Column DataIndex="AddFld15" Header="附近属性15" />
                                                                                            <ext:Column DataIndex="AddFld16" Header="附近属性16" />
                                                                                            <ext:Column DataIndex="AddFld17" Header="附近属性17" />
                                                                                            <ext:Column DataIndex="AddFld18" Header="附近属性18" />
                                                                                            <ext:Column DataIndex="AddFld19" Header="附近属性19" />
                                                                                            <ext:Column DataIndex="AddFld20" Header="附近属性20" />
                                                                                            <ext:Column DataIndex="AddFld21" Header="附近属性21" />
                                                                                            <ext:Column DataIndex="AddFld22" Header="附近属性22" />
                                                                                            <ext:Column DataIndex="AddFld23" Header="附近属性23" />
                                                                                            <ext:Column DataIndex="AddFld24" Header="附近属性24" />
                                                                                            <ext:Column DataIndex="AddFld25" Header="附近属性25" />
                                                                                            <ext:Column DataIndex="BSaleQty" Header="基本计量单位销售数量" />
                                                                                            <ext:Column DataIndex="BSalePrice" Header="基本计量单位销售单价" />
                                                                                            <ext:Column DataIndex="SaleQty" Header="销售数量" />
                                                                                            <ext:Column DataIndex="OrgSalePrice" Header="销售单价" />
                                                                                            <ext:Column DataIndex="OffRT" Header="折扣比率(%)" />
                                                                                            <ext:Column DataIndex="OffAmt" Header="折扣金额" />
                                                                                            <ext:Column DataIndex="SalePrice" Header="实际销售单价" />
                                                                                            <ext:Column DataIndex="SaleAmt" Header="实际销售金额" />
                                                                                            <ext:Column DataIndex="VATRT" Header="销项税率(%)" />
                                                                                            <ext:Column DataIndex="VAT" Header="销项税额" />
                                                                                            <ext:Column DataIndex="NTSalePrice" Header="不含税单价" />
                                                                                            <ext:Column DataIndex="NTSaleAmt" Header="不含税金额" />
                                                                                            <ext:Column DataIndex="CQNo" Header="报价单编号" />
                                                                                            <ext:Column DataIndex="SONo" Header="销售机会编号" />
                                                                                        </Columns>
                                                                                    </ColumnModel>
                                                                                    <View>
                                                                                        <ext:LockingGridView />
                                                                                    </View>
                                                                                    <SelectionModel>
                                                                                        <ext:RowSelectionModel runat="server" SingleSelect="true" />
                                                                                    </SelectionModel>
                                                                                    <Listeners>
                                                                                        <Expand Handler="#{storeGoods}.reload();" />
                                                                                    </Listeners>
                                                                                    <LoadMask ShowMask="true" />
                                                                                </ext:GridPanel>
                                                                            </Items>
                                                                        </ext:Panel>
                                                                        <ext:Panel ID="pnlPayments" AutoHeight="true" runat="server" Title="其他款项" Border="false">
                                                                            <Items>
                                                                                <ext:GridPanel runat="server" TrackMouseOver="true" StoreID="storePayments" Height="270">
                                                                                    <ColumnModel runat="server">
                                                                                        <Columns>
                                                                                            <ext:RowNumbererColumn />
                                                                                            <ext:Column Header="款项性质" DataIndex="CostTyp" />
                                                                                            <ext:Column Header="款项描述" DataIndex="CostDesc" />
                                                                                            <ext:Column Header="比率(%)" DataIndex="Ratio" />
                                                                                            <ext:Column Header="默认金额" DataIndex="CostAmt" />
                                                                                            <ext:Column Header="备注" DataIndex="Memo" />
                                                                                        </Columns>
                                                                                    </ColumnModel>
                                                                                    <SelectionModel>
                                                                                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
                                                                                    </SelectionModel>
                                                                                    <Listeners>
                                                                                        <Expand Handler="#{storePayments}.reload();" />
                                                                                    </Listeners>
                                                                                    <LoadMask ShowMask="true" />
                                                                                </ext:GridPanel>
                                                                            </Items>
                                                                        </ext:Panel>
                                                                        <ext:Panel ID="pnlRecord" AutoHeight="true" runat="server" Title="预收款记录" Border="false">
                                                                            <Items>
                                                                                <ext:GridPanel runat="server" TrackMouseOver="true" StoreID="storeRecord" Height="270">
                                                                                    <ColumnModel ID="ColumnModel1" runat="server">
                                                                                        <Columns>
                                                                                            <ext:RowNumbererColumn />
                                                                                            <ext:Column Header="协议付款日期" DataIndex="pPayDate" />
                                                                                            <ext:Column Header="描述" DataIndex="PayDesc" />
                                                                                            <ext:Column Header="比率(%)" DataIndex="Ratio" />
                                                                                            <ext:Column Header="金额" DataIndex="PayAmt" />
                                                                                            <ext:Column Header="备注" DataIndex="Memo" />
                                                                                            <ext:Column Header="已核销" DataIndex="IsPay" />
                                                                                            <ext:Column Header="核销日期" DataIndex="PayDate" />
                                                                                            <ext:Column Header="核销金额" DataIndex="CheckAmt" />
                                                                                        </Columns>
                                                                                    </ColumnModel>
                                                                                    <SelectionModel>
                                                                                        <ext:RowSelectionModel ID="RowSelectionModel3" runat="server" SingleSelect="true" />
                                                                                    </SelectionModel>
                                                                                    <Listeners>
                                                                                        <Expand Handler="#{storeRecord}.reload();" />
                                                                                    </Listeners>
                                                                                    <LoadMask ShowMask="true" />
                                                                                </ext:GridPanel>
                                                                            </Items>
                                                                        </ext:Panel>
                                                                        <ext:Panel ID="pnlContract" Height="270" runat="server" Title="合同条款" Border="false">
                                                                            <Items>
                                                                                <ext:GridPanel ID="GridPanel2" runat="server" TrackMouseOver="true" StoreID="storeContract">
                                                                                    <ColumnModel ID="ColumnModel2" runat="server">
                                                                                        <Columns>
                                                                                            <ext:RowNumbererColumn />
                                                                                            <ext:Column Header="条款" DataIndex="Term" />
                                                                                        </Columns>
                                                                                    </ColumnModel>
                                                                                    <SelectionModel>
                                                                                        <ext:RowSelectionModel ID="RowSelectionModel4" runat="server" SingleSelect="true" />
                                                                                    </SelectionModel>
                                                                                    <Listeners>
                                                                                        <Expand Handler="#{storeContract}.reload();" />
                                                                                    </Listeners>
                                                                                    <LoadMask ShowMask="true" />
                                                                                </ext:GridPanel>
                                                                            </Items>
                                                                        </ext:Panel>
                                                                    </Items>
                                                                </ext:TabPanel>
                                                            </South>
                                                        </ext:BorderLayout>
                                                    </Items>
                                                </ext:Panel>
                                            </Center>
                                        </ext:BorderLayout>
                                    </Items>
                                </ext:Panel>
                            </ext:LayoutRow>
                        </Rows>
                    </ext:RowLayout>
                </Items>
            </ext:Viewport>
        </div>
        </form>
    

      CS:

     

       #region  Refresh  GridPanel 加载 方案二
            protected void storeGoods_Refresh(object sender, StoreRefreshDataEventArgs e)
            {
                string strID = e.Parameters["ScNo"];
                if (string.IsNullOrEmpty(strID))
                    return;
                Refresh(strID);
            }
            protected void storeRecord_Refresh(object sender, StoreRefreshDataEventArgs e)
            {
                string strID = e.Parameters["ScNo"];
                if (string.IsNullOrEmpty(strID))
                    return;
                Refresh(strID);
            }
            protected void storePayments_Refresh(object sender, StoreRefreshDataEventArgs e)
            {
                string strID = e.Parameters["ScNo"];
                if (string.IsNullOrEmpty(strID))
                    return;
                Refresh(strID);
            }
            protected void storeContract_Refresh(object sender, StoreRefreshDataEventArgs e)
            {
                string strID = e.Parameters["ScNo"];
                if (string.IsNullOrEmpty(strID))
                    return;
                Refresh(strID);
            }
    
            private void Refresh(string strID)
            {
                DataRow[] itemPanelList = structTabPageTable.Select("TreeLevel=2 AND StrucLevel<3 AND IsStruc=1 ");
                for (int i = 0; i < itemPanelList.Length; i++)
                {
                    DataTable mould = MouldDao.GetMouldTables(structStr, itemPanelList[i]["SQLNo"].ToString());
                    DataTable field;
                    string index = string.Empty;
                    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 == 0)
                    {
                        storeGoods.DataSource = source;
                        storeGoods.DataBind();
                    }
    
                    if (i == 2)
                    {
                        storeRecord.DataSource = source;
                        storeRecord.DataBind();
                    }
                    if (i == 1)
                    {
                        storePayments.DataSource = source;
                        storePayments.DataBind();
                    }
                    if (i == 3)
                    {
                        storeContract.DataSource = source;
                        storeContract.DataBind();
                    }
                }
            }
            #endregion
    

      

    方案叁2011-11-21:

    上周功能是实现了,领导说好像有点慢……

    分析了一下发现性能上不好,因为单击选择一行“一对多” 多个一起加载 性能上大打折扣。

     今天整理下

    给“一对多”的这个“多”Panel 每个加一个事件Listeners

    <Listeners>
    <Activate Handler="#{storeGoods}.reload();" />
    </Listeners>

     当TabPanel中的Panel切换到当前Panel则执行事件

    protected void storeGoods_Refresh(object sender, StoreRefreshDataEventArgs e)

    读取数据加载……

    效果一样精彩,目前来说推荐方案叁  。。。。。

    八:Store OnBeforeStoreChanged

          

    protected void store_BeforeChanged(object sender, BeforeStoreChangedEventArgs e)
    {
    XmlDocument xml = e.DataHandler.XmlData;
    ChangedData("5", xml, store5);//根据条件修改GridPanl 中Store值
    Refresh(1, store, "5"); //修改完 再加载Store
    }

    继续跟进……


    作者:PEPE
    出处:http://pepe.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


    作者:PEPE
    出处:http://pepe.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    angular模板
    Growth: 全栈增长工程师指南
    全栈增长工程师实战
    vue 快速搭建项目 iview
    ng-style
    教程视频链接
    内置对象
    对象—封装、继承
    对象—构造函数
    函数-理论
  • 原文地址:https://www.cnblogs.com/PEPE/p/2234524.html
Copyright © 2011-2022 走看看