GridPanel MultiHeader went missing after selecting value from combobox filter

  1. #1

    GridPanel MultiHeader went missing after selecting value from combobox filter

    Not sure what is wrong, the gridpanel went missing when I selected the value from the combobox filter.

    Click image for larger version. 

Name:	FireShot Screen Capture #027 - '' - localhost_55556_Ext%20Test_Default_aspx.png 
Views:	219 
Size:	29.6 KB 
ID:	4217

    My Code as below
    
    <%@ Page Language="VB" CodeFile="~/Default.aspx.vb"  Inherits="_Default" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head runat="server">
        <title></title>    
    </head>
    <body>
        <form runat="server">
        
            <ext:ResourceManager ID="ResourceManager1" runat="server" IDMode="Explicit" />
    
            <ext:XScript runat="server">
            <script type="text/javascript">
    
                var OrgUnitType = function (value) {                        
                    switch (value) {
                        case "CMP":
                            return "Company";
                        case "BRN":
                            return "Branch";
                        case "DPM":
                            return "Department";
                        case "BSE":
                            return "Base";
                        case "DVS":
                            return "Division";
                        case "LIN":
                            return "Line";
                        case "SEC":
                            return "Section";
                        default:
                            return ""                
                    }
                };
                         
                var filterString = function (value, dataIndex, record) {
                    var val = record.get(dataIndex);
                    
                    if (typeof val != "string") {
                        return value.length == 0;
                    }
                    
                    return val.toLowerCase().indexOf(value.toLowerCase()) > -1;
                };         
                             
                var applyFilter = function (field) {                
                    var store = #{GridPanel1}.getStore();
                    store.suspendEvents();
                    store.filterBy(getRecordFilter());                                
                    store.resumeEvents();
                    #{GridPanel1}.getView().refresh(false);
                };
                 
                var clearFilter = function () {   
                    #{UnitFilter}.reset();             
                    #{TypeFilter}.reset();
                    #{PICFilter}.reset();
                     
                    #{OrgUnitStore}.clearFilter();
                };
     
                var getRecordFilter = function () {
                    var f = [];
    
                    f.push({
                        filter: function (record) {                         
                            return filterString(#{UnitFilter}.getValue(), "Description", record);
                        }
                    });
    
                    f.push({
                        filter: function (record) {                         
                            return filterString(#{TypeFilter}.getValue(), "Type", record);
                        }
                    });
                     
                    f.push({
                        filter: function (record) {                         
                            return filterString(#{PICFilter}.getValue(), "Employee", record);
                        }
                    });
     
                    var len = f.length;
                     
                    return function (record) {
                        for (var i = 0; i < len; i++) {
                            if (!f[i].filter(record)) {
                                return false;
                            }
                        }
                        return true;
                    };
                };
     
            </script>
        </ext:XScript>
      
        <ext:Store ID="OrgUnitStore" runat="server">
            <Reader>
                <ext:JsonReader IDProperty="ID" >
                    <Fields>
                        <ext:RecordField Name="ID" />                    
                        <ext:RecordField Name="Type" />
                        <ext:RecordField Name="Description" />
                        <ext:RecordField Name="Employee" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store> 
    
        <ext:Window ID="OrgWin" runat="server" Icon="ChartOrganisation" Hidden="true" ShowOnLoad="false" Width="400" Title="Unit"
            Closable="true" Resizable="false">
            <Items>            
                <ext:FormPanel ID="OrgFrmPnl" runat="server" LabelAlign="Left" Layout="FormLayout"
                    MonitorValid="true" Padding="6" Border="false" BodyStyle="background-color:transparent;">
                    <Defaults>
                        <ext:Parameter Name="anchor" Value="94%" Mode="Value" />
                        <ext:Parameter Name="msgTarget" Value="side" Mode="Value" />
                    </Defaults>
                    <Items>
                        <ext:Hidden ID="txtOrgUnitId" runat="server" />
                        <ext:DropDownField ID="ddlOrgUnit" runat="server" Editable="false"
                            TriggerIcon="Search" FieldLabel="Unit" AllowBlank="false" BlankText="Select Unit">
                            <Component>
                                <ext:GridPanel ID="GridPanel1" runat="server" StripeRows="true" TrackMouseOver="true" Width="550"
                                    Height="300" StoreID="OrgUnitStore" AutoExpandColumn="Description">
                                    <ColumnModel runat="server">
                                        <Columns>
                                            <ext:Column ColumnID="Description" Header="Description" DataIndex="Description" Width="200" />
                                            <ext:Column ColumnID="Type" Header="Type" DataIndex="Type" Width="100" >
                                                <Renderer Fn="OrgUnitType" />
                                            </ext:Column>
                                            <ext:Column ColumnID="Employee" Header="Employee" DataIndex="Employee" Width="200" />
                                            <ext:Column Width="28" Sortable="false" MenuDisabled="true" Header="&nbsp;" Fixed="true">
                                                <Renderer Handler="return '';" />
                                            </ext:Column>
                                        </Columns>
                                    </ColumnModel>                                                                                
                                    <SelectionModel>
                                        <ext:RowSelectionModel runat="server" SingleSelect="true">
                                            <Listeners>
                                                <RowSelect Handler="#{txtOrgUnitId}.setValue(this.getSelected().data.ID);#{ddlOrgUnit}.setValue(this.getSelected().data.description);" />
                                            </Listeners>
                                        </ext:RowSelectionModel>
                                    </SelectionModel>
                                    <View>
                                        <ext:GridView runat="server">
                                            <HeaderRows>
                                                <ext:HeaderRow>
                                                    <Columns>
    
                                                        <ext:HeaderColumn Cls="x-small-editor">
                                                            <Component>
                                                                <ext:TextField ID="UnitFilter" runat="server" EnableKeyEvents="true">
                                                                    <Listeners>
                                                                        <KeyUp Handler="applyFilter(this);" Buffer="250" />                                                
                                                                    </Listeners>
                                                                </ext:TextField>
                                                            </Component>
                                                        </ext:HeaderColumn>
    
                                                        <ext:HeaderColumn Cls="x-small-editor">
                                                            <Component>
                                                                <ext:ComboBox ID="TypeFilter" runat="server" Editable="false">
                                                                    <Items>
                                                                        <ext:ListItem Text="Company" Value="CMP" />
                                                                        <ext:ListItem Text="Branch" Value="BRN" />
                                                                        <ext:ListItem Text="Department" Value="DPM" />
                                                                        <ext:ListItem Text="Base" Value="BSE" />
                                                                        <ext:ListItem Text="Section" Value="SEC" />
                                                                        <ext:ListItem Text="Line" Value="LIN" />
                                                                    </Items>
                                                                    <Listeners>
                                                                        <Select Handler="applyFilter(this);" Buffer="250" />
                                                                    </Listeners>
                                                                </ext:ComboBox>                                                            
                                                            </Component>
                                                        </ext:HeaderColumn>
    
                                                        <ext:HeaderColumn Cls="x-small-editor">
                                                            <Component>
                                                                <ext:TextField ID="PICFilter" runat="server" EnableKeyEvents="true">
                                                                    <Listeners>
                                                                        <KeyUp Handler="applyFilter(this);" Buffer="250" />                                                
                                                                    </Listeners>
                                                                </ext:TextField>
                                                            </Component>
                                                        </ext:HeaderColumn>
    
                                                        <ext:HeaderColumn AutoWidthElement="false">
                                                            <Component>
                                                                <ext:Button ID="ClearFilterButton" runat="server" Icon="Cancel">
                                                                    <ToolTips>
                                                                        <ext:ToolTip runat="server" Html="Clear filter" />
                                                                    </ToolTips>
                                                 
                                                                    <Listeners>
                                                                        <Click Handler="clearFilter(null);" />
                                                                    </Listeners>                                            
                                                                </ext:Button>
                                                            </Component>
                                                        </ext:HeaderColumn>
    
                                                    </Columns>
                                                </ext:HeaderRow>
                                            </HeaderRows>
                                        </ext:GridView>
                                    </View>
                                    <BottomBar>
                                        <ext:PagingToolbar ID="PagingToolbar" runat="server" PageSize="10" HideRefresh="true" />
                                    </BottomBar>
                                </ext:GridPanel>
                            </Component>
                        </ext:DropDownField>
                    </Items>
                    <Listeners>
                        <ClientValidation Handler="#{BtnOrgSubmit}.setDisabled(!valid);" />
                    </Listeners>
                </ext:FormPanel>
            </Items>
            <Buttons>            
                <ext:Button runat="server" ID="BtnOrgSubmit" Text="Plot">
                    <Listeners>
                        <Click Handler="alert(#{txtOrgUnitId}.getValue());#{OrgWin}.hide();" />
                    </Listeners>
                </ext:Button>
                <ext:Button runat="server" ID="BtnOrgCancel" Text="Close">
                    <Listeners>
                        <Click Handler="#{OrgWin}.hide();" />
                    </Listeners>
                </ext:Button>
            </Buttons>
            <Listeners>
                <Hide Handler="#{OrgFrmPnl}.getForm().reset();" />
            </Listeners>
        </ext:Window>
    
        </form>
    </body>
    </html>
    Backend code
    
    Imports Ext.Net
    Imports Ext.Net.X
    
    Partial Class _Default
        Inherits System.Web.UI.Page
    
    
        Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    
            If Not IsAjaxRequest Then
    
                Dim oSample As New SampleCollection()
                oSample.Add(New Sample(1, "CMP", "PPQ", "Wang"))
                oSample.Add(New Sample(2, "DPM", "RND", "Jim"))
                oSample.Add(New Sample(3, "DPM", "SUPPORT", "John"))
                oSample.Add(New Sample(4, "BRN", "KL", ""))
                oSample.Add(New Sample(5, "SEC", "OTHER", ""))
                oSample.Add(New Sample(6, "LIN", "OTHER", ""))
                oSample.Add(New Sample(7, "BSE", "OTHER", ""))
                oSample.Add(New Sample(8, "DVS", "OTHER", ""))
                oSample.Add(New Sample(9, "BRN", "KL", ""))
                oSample.Add(New Sample(10, "BRN", "JH", ""))
                oSample.Add(New Sample(11, "BRN", "PL", ""))
                oSample.Add(New Sample(12, "BRN", "TR", ""))
    
                Me.OrgUnitStore.DataSource = oSample
                Me.OrgUnitStore.DataBind()
    
                Me.OrgWin.Show()
            End If
    
        End Sub
    
    End Class
    
    Public Class Sample
        Public Property ID() As Integer
            Get
                Return m_ID
            End Get
            Set(value As Integer)
                m_ID = value
            End Set
        End Property
        Private m_ID As Integer
        Public Property Type() As String
            Get
                Return m_Type
            End Get
            Set(value As String)
                m_Type = value
            End Set
        End Property
        Private m_Type As String
        Public Property Description() As String
            Get
                Return m_Description
            End Get
            Set(value As String)
                m_Description = value
            End Set
        End Property
        Private m_Description As String
        Public Property Employee() As String
            Get
                Return m_Employee
            End Get
            Set(value As String)
                m_Employee = value
            End Set
        End Property
        Private m_Employee As String
    
        Public Sub New(ByVal ID As Integer, ByVal Type As String, ByVal Description As String, ByVal Employee As String)
    
            Me.m_ID = ID
            Me.m_Type = Type
            Me.m_Description = Description
            Me.m_Employee = Employee
    
        End Sub
    
    End Class
    
    Public Class SampleCollection
        Inherits CollectionBase
    
        Public Function Add(ByVal value As Sample) As Integer
            Return (List.Add(value))
        End Function
    
    End Class
    Oh ya using v1.2
  2. #2
    Please delete this thread, posted in the the wrong sub-forum. Migrated to Premium Help.

Similar Threads

  1. Gridpanel multiheader From To date filter
    By nomz in forum 2.x Help
    Replies: 4
    Last Post: Oct 26, 2012, 10:39 AM
  2. Replies: 4
    Last Post: May 16, 2012, 8:14 AM
  3. Replies: 2
    Last Post: Nov 30, 2010, 9:41 AM
  4. [CLOSED] Missing filter column using MultiHeader Filter.
    By flormariafr in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Aug 12, 2010, 1:07 PM
  5. Replies: 2
    Last Post: Feb 11, 2009, 7:04 AM

Posting Permissions