Mar 18, 2014, 8:46 PM
GridPanel : FilterHeader Bug
Hi,
adding a filterHeader to a grid panel causes a javascript error.
I only have a sample in code behind and did not test in aspx :
FilterHeader fh = new FilterHeader() { CaseSensitive = false };
gp.Plugins.Add(fh);
here is the aspx:
if we hit "continue", we have no filter:
I tested this in a much bigger scenario, same issue, this is why i created this simplified sample.
I use ext.Net 2.5.
Have a nice day !
adding a filterHeader to a grid panel causes a javascript error.
I only have a sample in code behind and did not test in aspx :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;
namespace WebApplication1
{
public partial class WebForm2 : System.Web.UI.Page
{
public class Dummy
{
public DateTime dt { get; set; }
public string val0 { get; set; }
public int val1 { get; set; }
public int val2 { get; set; }
public static Ext.Net.Store GetStore()
{
return new Store
{
Model =
{
new Model
{
Fields =
{
new ModelField("dt", ModelFieldType.Date),
new ModelField("val0", ModelFieldType.String),
new ModelField("val1", ModelFieldType.Int),
new ModelField("val2", ModelFieldType.Int)
}
}
}
};
}
public static Ext.Net.ItemsCollection<Ext.Net.ColumnBase> GetColumns()
{
Ext.Net.ItemsCollection<Ext.Net.ColumnBase> Cols = new ItemsCollection<ColumnBase>
{
new DateColumn
{
Text = "Date",
DataIndex = "dt",
Format="d MMM Y ",
Flex = 1
},
new Column
{
Text = "Value 0",
DataIndex = "val0",
Flex = 1
},
new Column
{
Text = "Value 1",
DataIndex = "val1"
},
new Column
{
Text = "Value 2",
DataIndex = "val2"
}
};
return Cols;
}
};
protected void Page_Load(object sender, EventArgs e)
{
// creating a dummy store
List<Dummy> mylist = new List<Dummy>();
DateTime baseDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
for (int i = 0; i < 24; i++)
{
mylist.Add(new Dummy()
{
dt = baseDate.AddMonths(-i),
val1 = i,
val2 = (i+1) * 2,
val0 = Guid.NewGuid().ToString("N").Substring(0, i + 4)
});
}
//creating a gridpabnel to see store data
GridPanel gp = new GridPanel()
{
Border = true,
Title = "Working OK",
MarginSpec = "0 0 3 0",
Flex=1,
SelectionModel =
{
new RowSelectionModel() { Mode = SelectionMode.Multi }
},
View =
{
new Ext.Net.GridView()
{
StripeRows = true,
TrackOver = true
}
}
};
FilterHeader fh = new FilterHeader() { CaseSensitive = false };
gp.Plugins.Add(fh);
Store myStore = Dummy.GetStore();
myStore.ID = "dummyStore";
myStore.DataSource = mylist;
gp.ColumnModel.Add(Dummy.GetColumns());
gp.Store.Add(myStore);
gp.AddTo(this.MyTabPanel);
}
}
}
code works ok if we remove this:FilterHeader fh = new FilterHeader() { CaseSensitive = false };
gp.Plugins.Add(fh);
here is the aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication1.WebForm2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="Form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:Viewport ID="Viewport1" Layout="border" runat="server">
<Items>
<ext:Container ID="Container1" runat="server" Region="Center" Layout="FitLayout">
<LayoutConfig>
<%-- <ext:VBoxLayoutConfig Align="Stretch" DefaultMargins="5 5 5 5" />--%>
<ext:FitLayoutConfig DefaultMargins="5 5 5 5" />
</LayoutConfig>
<Items>
<ext:TabPanel runat="server">
<Items>
<ext:Panel ID="MyTabPanel" runat="server" Title="Demo KO" Layout="FitLayout" Margins="5" UI="Success">
<TabConfig ID="TabConfig2" runat="server" UI="Danger" />
</ext:Panel>
</Items>
</ext:TabPanel>
</Items>
</ext:Container>
</Items>
</ext:Viewport>
</form>
</body>
</html>
here is a visual studio screenshot:if we hit "continue", we have no filter:
I tested this in a much bigger scenario, same issue, this is why i created this simplified sample.
I use ext.Net 2.5.
Have a nice day !