Sep 30, 2013, 4:58 PM
Gridpanel browser screen auto pagesize, Does this make sense?
the following code works
this java code
this html code
CodeBehind code
this java code
var GetPageSize = function (grid) {
var headerHeight = grid.getHeight();
var maxRowsPerGrid = Math.floor((headerHeight - 114) / 21);
if (maxRowsPerGrid <= 0) maxRowsPerGrid = 1;
App.Hidden_PageSize.setValue(maxRowsPerGrid);
App.Store_SatisFirmalar.pageSize = maxRowsPerGrid;
App.GridPanel_SatisFirmalar.store.reload();
return maxRowsPerGrid;
};
this html code
<ext:Store ID="Store_SatisFirmalar" runat="server" OnReadData="Store_SatisFirmalar_OnReadData" RemoteSort="true" RemotePaging="true" AutoLoad="false">
<Proxy>
<ext:PageProxy />
</Proxy>
<Model>
<ext:Model ID="Model_SatisFirmalar" runat="server" IDProperty="AutoId">
<Fields>
<ext:ModelField Name="AutoId" Type="Float" />
<ext:ModelField Name="Email" Type="String" />
<ext:ModelField Name="Adres" Type="String" />
<ext:ModelField Name="SaveDate" Type="Date" />
<ext:ModelField Name="SaveUser" Type="String" />
<ext:ModelField Name="ChangeDate" Type="Date" />
<ext:ModelField Name="ChangeUser" Type="String" />
</Fields>
</ext:Model>
</Model>
<Sorters>
<ext:DataSorter Property="Adi" Direction="ASC" />
</Sorters>
</ext:Store>
<ext:GridPanel ID="GridPanel_SatisFirmalar" runat="server" StoreID="Store_SatisFirmalar" Region="Center" EnableColumnHide="false" Frame="true" EnableColumnMove="false" Floating="false" Resizable="false">
......................
.....................
<Listeners>
<Resize Handler="GetPageSize(this)" Delay="800" Buffer="250" />
</Listeners>
</ext:GridPanel>
<ext:Hidden ID="Hidden_PageSize" runat="server" Text="25" />
CodeBehind code
protected void Store_SatisFirmalar_OnReadData(object sender, StoreReadDataEventArgs e)
{
string sort = e.Sort[0].Property;
int limit = int.Parse(Hidden_PageSize.Text); // e.Limit;
using (var context = new WebEntities())
{
IQueryable<SatisFirmalar> satisFirma = from SatisFirmalar p in context.SatisFirmalars select p;
satisFirma = MyLibrary.OrderByField(satisFirma, sort, (e.Sort[0].Direction == Ext.Net.SortDirection.DESC ? false : true)); //return sorted linq
#region "~~~~~~~~~~~~~~~~~~ where ~~~~~~~~~~~~~~~~~~~~~~~~"
if (TextField_Adi.Text != "") satisFirma = satisFirma.Where(p => p.Adi.Contains(TextField_Adi.Text));
#endregion
int satisFirmaCount = satisFirma.Count();
if ((e.Start + e.Limit) > satisFirmaCount) limit = satisFirmaCount - e.Start;
e.Total = satisFirmaCount;
Store_SatisFirmalar.DataSource = ((e.Start < 0 || limit < 0) ? satisFirma : satisFirma.Skip(e.Start).Take(limit));
Store_SatisFirmalar.DataBind();
}
}
Thank you in advance