[CLOSED] [Help] Grid Selection doesn't work after refresh data with local filtering.

  1. #1

    [CLOSED] [Help] Grid Selection doesn't work after refresh data with local filtering.

    Hi. all

    I hav problem that grid selection dosen't work

    Step1. Some column filter by gridfilter feature local mode.
    Step2. Reload data
    Step3. selection doesn't work when I select one row or other row selected.

    Below my UI source code.
    Thanks.

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Mini.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    
    <%@ Register Src="~/Areas/Close/Views/CEProcessClose/PriceList.ascx" TagPrefix="uc1" TagName="PriceList" %>
    <%@ Register Src="~/Areas/Close/Views/CEProcessClose/ItemList.ascx" TagPrefix="uc1" TagName="ItemList" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
        Index
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    
        <script>
            var ProcessClose = new MiniController("ProcessClose", "Close/CEProcessClose/Save");
    
            Ext.override(ProcessClose, {
                add: function () {
                    if (!this.doCheckDup()) return;
    
                    var selections = this.getGrid().getSelectionModel().getSelection();
    
                    if (selections.length == 0) {
                        Mini.Msg.alert("선택된 항목이 없습니다");
                        return false;
                    }
    
                    ItemList.setItems(selections);
                    PriceList.setPartProcessID(selections[0].data.FromPartProcessID);
    
                    App.AddWindow.show();
                },
                doCheckDup: function () {
                    var tempPartProcessID = 0;
                    var selections = this.getGrid().getSelectionModel().getSelection();
    
                    Ext.each(selections, function (item) {
                        if (tempPartProcessID == 0) {
                            tempPartProcessID = item.data.FromPartProcessID;
                        }
                        else if (tempPartProcessID != item.data.FromPartProcessID) {
                            Mini.Msg.alert("동일한 공정의 제품을 선택후 마감입력 하세요");
                            tempPartProcessID = -1;
                            return false;
                        }
                    });
    
                    if (tempPartProcessID < 0)
                        return false;
                    else
                        return true;
                },
                onBeforeSelect: function (a, b, c, d, e, f) {
                    var aa = 0;
                }
            });
        </script>
    
        <ext:Viewport runat="server" Layout="FitLayout">
            <Items>
                <ext:GridPanel runat="server" ID="ProcessCloseGrid" Layout="FitLayout">
                    <Store>
                        <ext:Store runat="server" ID="ProcessCloseStore" GroupField="PartName">
                            <Proxy>
                                <ext:AjaxProxy Url="~/Close/CEProcessClose/RemainList">
                                    <Reader>
                                        <ext:JsonReader IDProperty="PK" Root="data" />
                                    </Reader>
                                    <Listeners>
                                        <Exception Fn="Mini.ExceptionFn" />
                                    </Listeners>
                                </ext:AjaxProxy>
                            </Proxy>
                            <Model>
                                <ext:Model runat="server" IDProperty="PK" ClientIdProperty="PK"  >
                                    <Fields>
                                        <ext:ModelField Name="PK"                  Type="Int" />
                                        <ext:ModelField Name="LotID"               Type="String" />
                                        <ext:ModelField Name="ToPartProcessID"     Type="Int" />
                                        <ext:ModelField Name="FactoryID"           Type="Int" />
                                        <ext:ModelField Name="FromPartProcessName" Type="String" />
                                        <ext:ModelField Name="FromPartProcessID"   Type="Int" />
                                        <ext:ModelField Name="ToPartProcessName"   Type="String" />
                                        <ext:ModelField Name="SupplierID"          Type="Int" />
                                        <ext:ModelField Name="SupplierName"        Type="String" />
                                        <ext:ModelField Name="PartID"              Type="Int" />
                                        <ext:ModelField Name="PartColorID"         Type="Int" UseNull="true"/>
                                        <ext:ModelField Name="PartPrintID"         Type="Int" UseNull="true"/>
                                        <ext:ModelField Name="PartName"            Type="String" />
                                        <ext:ModelField Name="ColorName"           Type="String" />
                                        <ext:ModelField Name="PrintName"           Type="String" />
                                        <ext:ModelField Name="OKQty"               Type="Int" />
                                        <ext:ModelField Name="DefectQty"           Type="Int" />
                                        <ext:ModelField Name="LostQty"             Type="Int" />
                                        <ext:ModelField Name="WDate"               Type="Date" />
                                        <ext:ModelField Name="Note"                Type="String" />
                                        <ext:ModelField Name="Incomed"             Type="Boolean" />
                                    </Fields>
                                </ext:Model>
                            </Model>
                        </ext:Store>
                    </Store>
                    <TopBar>
                        <ext:Toolbar runat="server">
                            <Items>
                                <ext:Button runat="server" Icon="Reload" Text="새로고침" OnClientClick="ProcessClose.reload();" />
                                <ext:Button runat="server" Icon="Add" Text="마감" OnClientClick="ProcessClose.add();" />
                            </Items>
                        </ext:Toolbar>
                    </TopBar>
                    <ColumnModel>
                        <Columns>
                            <ext:Column        runat="server" DataIndex="PartName"            Text="품명" Width="150" />
                            <ext:Column        runat="server" DataIndex="ColorName"           Text="색상" Width="100" />
                            <ext:Column        runat="server" DataIndex="PrintName"           Text="인쇄" Width="100" />
                            <ext:Column        runat="server" DataIndex="LotID"               Text="LotID" Width="120" />
                            <ext:Column        runat="server" DataIndex="FromPartProcessName" Text="공정명" Width="100" />
                            <ext:Column        runat="server" DataIndex="SupplierName"        Text="업체명" Width="100" />
                            <ext:NumberColumn  runat="server" DataIndex="OKQty"               Text="양품수량" Width="70"  Format="0,000" Align="Right"/>
                            <ext:NumberColumn  runat="server" DataIndex="DefectQty"           Text="불량수량" Width="70" Format="0,000" Align="Right"/>
                            <ext:NumberColumn  runat="server" DataIndex="LostQty"             Text="시료/유실" Width="70" Format="0,000" Align="Right"/>
                            <ext:DateColumn    runat="server" DataIndex="WDate"               Text="일자" Width="80" Format="yyyy-MM-dd"/>
                            <ext:Column        runat="server" DataIndex="Note"                Text="비고" Width="100" />
                            <ext:Column        runat="server" DataIndex="ToPartProcessName"   Text="후공정명" Width="100" />
                            <ext:CheckColumn   runat="server" DataIndex="Incomed"             Text="후공정입고" Width="100" />
                        </Columns>
                    </ColumnModel>
                    <Features>
                        <ext:GridFilters runat="server" Local="true">
                            <Filters>
                                <ext:StringFilter DataIndex="LotID" />
                                <ext:StringFilter DataIndex="FromPartProcessName" />
                                <ext:StringFilter DataIndex="ToPartProcessName" />
                                <ext:StringFilter DataIndex="SupplierName" />
                                <ext:StringFilter DataIndex="PartName" />
                                <ext:StringFilter DataIndex="ColorName" />
                                <ext:StringFilter DataIndex="PrintName" />
                                <ext:StringFilter DataIndex="Note" />
                                <ext:DateFilter DataIndex="WDate" />
                                <ext:BooleanFilter DataIndex="Incomed" />
                            </Filters>
                        </ext:GridFilters>
                        <ext:Grouping runat="server" HideGroupedHeader="true" />
                    </Features>
                    <View>
                        <ext:GridView runat="server" />
                    </View>
                    <SelectionModel>
                        <ext:CheckboxSelectionModel runat="server">
                            <Listeners>
                                <BeforeSelect Fn="ProcessClose.onBeforeSelect" />
                            </Listeners>
                        </ext:CheckboxSelectionModel>
                    </SelectionModel>
                </ext:GridPanel>
            </Items>
        </ext:Viewport>
        <ext:Window runat="server" ID="AddWindow" Width="1000" Height="600" Modal="true" Hidden="true" Layout="VBoxLayout"
            Title="마감입력">
            <LayoutConfig>
                <ext:VBoxLayoutConfig Align="Stretch" />
            </LayoutConfig>
            <Items>
                <ext:Panel runat="server" Flex="2" Layout="FitLayout">
                    <Content>
                        <uc1:PriceList runat="server" ID="PriceList" />
                    </Content>
                </ext:Panel>
                <ext:Panel runat="server" Flex="3" Layout="FitLayout">
                    <Content>
                        <uc1:ItemList runat="server" ID="ItemList" />
                    </Content>
                </ext:Panel>
            </Items>
        </ext:Window>
    </asp:Content>
    Last edited by Daniil; Jul 18, 2013 at 7:25 AM. Reason: [CLOSED]
  2. #2
    Hi @zendy,

    Please clarify what Ext.NET version are you using?
  3. #3
    Quote Originally Posted by Daniil View Post
    Hi @zendy,

    Please clarify what Ext.NET version are you using?

    I'm using 2.2 version.

    Thanks Daniil.
  4. #4
    The official release or from the SVN trunk?
  5. #5
    Quote Originally Posted by Daniil View Post
    The official release or from the SVN trunk?
    Oh, I'm sorry. It is from the SVN trunk. version 2.2.0.25027.(revision 5250).
  6. #6
    I cannot reproduce with this test case. Can you?

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Store_ReadData(object sender, StoreReadDataEventArgs e)
        {
            Store store = sender as Store;
            store.DataSource = new object[] 
                { 
                    new object[] { "group1", "1", "1" },
                    new object[] { "group1", "1", "11" },
                    new object[] { "group1", "2", "111" },
                    new object[] { "group1", "1", "11" },
                    new object[] { "group1", "2", "111" },
                    new object[] { "group2", "2", "2" },
                    new object[] { "group2", "1", "22" },
                    new object[] { "group2", "2", "2" },
                    new object[] { "group2", "1", "22" },
                    new object[] { "group2", "2", "222" }
                };
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Ext.NET v2 Example</title>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
    
            <ext:Button runat="server" Text="Reload" Handler="App.GridPanel1.getStore().reload();" />
    
            <ext:GridPanel ID="GridPanel1" runat="server">
                <Store>
                    <ext:Store runat="server" GroupField="groupId" OnReadData="Store_ReadData">
                        <Proxy>
                            <ext:PageProxy>
                                <Reader>
                                    <ext:ArrayReader />
                                </Reader>
                            </ext:PageProxy>
                        </Proxy>
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="groupId" />
                                    <ext:ModelField Name="test1" />
                                    <ext:ModelField Name="test2" />
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column runat="server" Text="GroupId" DataIndex="groupId" />
                        <ext:Column runat="server" Text="Test1" DataIndex="test1" />
                        <ext:Column runat="server" Text="Test2" DataIndex="test2" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                        <ext:CheckboxSelectionModel runat="server" />
                    </SelectionModel>
                <Features>
                    <ext:GridFilters runat="server" Local="true">
                        <Filters>
                            <ext:StringFilter DataIndex="test1" />
                        </Filters>
                    </ext:GridFilters>
                    <ext:Grouping runat="server" />
                </Features>
            </ext:GridPanel>
        </form>
    </body>
    </html>

Similar Threads

  1. [CLOSED] Local sorting with local filtering and paging
    By g-tech in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Jun 10, 2013, 3:36 AM
  2. Replies: 11
    Last Post: Jun 13, 2012, 4:53 PM
  3. Replies: 4
    Last Post: Nov 11, 2010, 11:46 AM
  4. Replies: 0
    Last Post: May 11, 2010, 10:35 PM
  5. Replies: 0
    Last Post: Aug 16, 2009, 10:46 AM

Posting Permissions