<system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="5000000" /> </webServices> </scripting> </system.web.extensions>
I have an incorrect grouping message on the last page of my Grid:
"Business Unit: Technical Services (Showing 3 of 11 items. Group continues on
the next page.)"
This is incorrect - there are only 3 records in this group and they are the last 3 records of the set. The virtual item count appears to be set correctly. If I set my page size to 10 or 20 from 50, the message no longer shows. For a Page Size of 30 records, the message is "Showing 3 of 21 items".
How do I fix this message?
The grouping code is as follows:
GridGroupByExpression expression1 = new GridGroupByExpression(),
expression2= new GridGroupByExpression(),
expression3 = new GridGroupByExpression();
expression1.SelectFields.Add(GetGridGroupByField("Division", "Division"));
expression1.GroupByFields.Add(GetGridGroupByField("Division", null));
expression2.SelectFields.Add(GetGridGroupByField("BusinessUnit", "Business Unit"));
expression2.GroupByFields.Add(GetGridGroupByField("BusinessUnit", null));
expression3.SelectFields.Add(GetGridGroupByField("State", "State"));
expression3.GroupByFields.Add(GetGridGroupByField("State", null));
rg.MasterTableView.GroupByExpressions.Add(expression1);
rg.MasterTableView.GroupByExpressions.Add(expression2);
rg.MasterTableView.GroupByExpressions.Add(expression3);
void
BindsGrid(
int
pageIndex = 0)
{
SetupTableService pgs =
new
SetupTableService();
DataTable dt = pgs.ExportFuelGrade(SupplierId);
int
i = 0;
if
(gvFuelsGrades.MasterTableView.Columns.Count > 0)
{
gvFuelsGrades.MasterTableView.Columns.Clear();
gvFuelsGrades.DataSource =
null
;
gvFuelsGrades.DataBind();
}
foreach
(DataColumn col
in
dt.Columns)
{
GridBoundColumn boundCol =
new
GridBoundColumn();
string
column =
string
.Format(
"{0}"
, dt.Columns[i].ColumnName);
boundCol.DataField = column;
boundCol.HeaderText = column;
// templateCol.UniqueName = column.Replace(" ", string.Empty);
gvFuelsGrades.MasterTableView.DataKeyNames =
new
string
[] {
"FuelId"
};
boundCol.ItemStyle.Width = Unit.Pixel(500);
boundCol.ItemStyle.Wrap =
true
;
if
(boundCol.HeaderText ==
"FuelId"
|| boundCol.HeaderText ==
"OilGrade"
|| boundCol.HeaderText ==
"FuelGradeId"
|| boundCol.HeaderText ==
"ProductGroupId"
)
boundCol.Visible =
false
;
gvFuelsGrades.MasterTableView.Columns.Add(boundCol);
i++;
}
gvFuelsGrades.ClientIDMode = System.Web.UI.ClientIDMode.Static;
gvFuelsGrades.CurrentPageIndex = pageIndex;
gvFuelsGrades.AllowPaging =
true
;
gvFuelsGrades.Width = Unit.Pixel(1000);
gvFuelsGrades.DataSource = dt;
gvFuelsGrades.DataBind();
//(gvFuelsGrades.MasterTableView.GetColumn("Actions") as GridTemplateColumn).OrderIndex = gvFuelsGrades.Columns.Count+1;
GridTemplateColumn templateCol =
new
GridTemplateColumn();
templateCol.ItemTemplate =
new
GridActionTemplate(
"Actions"
);
templateCol.HeaderText =
"Actions"
;
templateCol.OrderIndex = gvFuelsGrades.Columns.Count + 2;
gvFuelsGrades.MasterTableView.Columns.Add(templateCol);
gvFuelsGrades.Rebind();
//(gvFuelsGrades.MasterTableView.GetColumn("Actions") as GridTemplateColumn).Visible = CanEdit() | CanDelete();
}
class
GridActionTemplate : ITemplate
{
public
event
CommandEventHandler Command;
private
void
OnCommand(CommandEventArgs e)
{
if
(Command !=
null
)
{
Command(
this
, e);
}
}
private
void
imgEdit_Command(
object
sender, GridCommandEventArgs e)
{
OnCommand(e);
}
public
void
InstantiateIn(System.Web.UI.Control container)
{
lControl =
new
LiteralControl();
lControl.ID =
"lControl"
;
imgEdit =
new
ImageButton();
imgEdit.CommandName =
"edit"
;
imgEdit.ID =
"btnEdit"
;
imgEdit.ImageUrl =
"~/Static/Images/Actions/edit.png"
;
imgDelete =
new
ImageButton();
imgDelete.CommandName =
"delete"
;
imgDelete.ImageUrl =
"~/Static/Images/Actions/delete.gif"
;
Table tbl =
new
Table();
TableRow tr =
new
TableRow();
TableCell td =
new
TableCell();
td.Controls.Add(imgEdit);
tr.Cells.Add(td);
td =
new
TableCell();
td.Controls.Add(imgDelete);
tr.Cells.Add(td);
tbl.Rows.Add(tr);
container.Controls.Add(imgEdit);
container.Controls.Add(imgDelete);
}
protected
LiteralControl lControl;
protected
ImageButton imgEdit;
protected
ImageButton imgDelete;
protected
ImageButton imgView;
private
string
colname;
public
GridActionTemplate(
string
cName)
{
colname = cName;
}
}
I have a RadGrid entirely created via code during runtime.
When I use this setting below, the pager works just fine:
myGrid.MasterTableView.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
However, when I change it into this:
myGrid.MasterTableView.PagerStyle.Mode = GridPagerMode.NextPrevNumericAndAdvanced;
...I get the following javascript exception on every grid action (paging, sorting), and the actual postback is never executed:
SCRIPT438: Object doesn't support property or method '$'
Ajax.js, line 574 character 8
(http://aspnet-scripts.telerikstatic.com/ajaxz/2012.2.912/Ajax/Ajax.js)
That line reads:
if
($telerik.$(a).css(
"opacity"
)>0||$telerik.$(a.getElementsByClassName(
"raDiv"
)[0]).css(
"opacity"
)>0){
g=
false
;
}
Could you think of a reason how this error could possibly related to the advanced pager?
I have a website running Sitefinity that I recently upgraded from 5.1 SP1 to 5.1 SP2 (RadControls v2012.2.607.40). Prior to the upgrade RadTextBox styling was working properly in that I could define a css class rule that included a width property and use it for the RadTextBox's CssClass property and everthing worked as expected. Since the 5.1 SP2 upgrade none of my width properties are applied and the RTB seems to be defaulting to 160px width.
Here's what my markup and css look like:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ZRTBTest.aspx.cs" Inherits="SitefinityWebApp.ZRTBTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
style
>
.rtbWrp
{
font-family: Tahoma,Verdana,sans-serif;
font-size: 12px;
width: 600px;
background-color: #c0c0c0;
padding: 5px;
}
.rtb550, .rtb450, .rtb350
{
padding: 3px !important;
vertical-align: middle !important;
margin-bottom: 15px !important;
border: 1px solid #ff0000 !important;
}
.rtb550
{
width: 550px !important;
}
.rtb450
{
width: 450px !important;
}
.rtb350
{
width: 350px !important;
}
</
style
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
> <
div
>
<
div
class
=
"rtbWrp"
>
<
telerik:RadTextBox
ID
=
"RadTextBox1"
runat
=
"server"
CssClass
=
"rtb550"
>
</
telerik:RadTextBox
></
div
>
<
div
class
=
"rtbWrp"
>
<
telerik:RadTextBox
ID
=
"RadTextBox2"
runat
=
"server"
CssClass
=
"rtb450"
>
</
telerik:RadTextBox
>
</
div
>
<
div
class
=
"rtbWrp"
>
<
telerik:RadTextBox
ID
=
"RadTextBox3"
runat
=
"server"
CssClass
=
"rtb350"
>
</
telerik:RadTextBox
>
</
div
>
</
div
>
</
form
>
</
body
>
</
html
>
Everything looks fine in Firefox (15.0.1), Chrome (21.0.1180.89) and IE 8 (see rtb_firefox_chrome_ie8standards.PNG). In IE9 Standards mode the width of the text boxes is clipped at 160px (see rtb_ie9_standardsmode.PNG). I could swear this was working in the last version.
Anyone else seeing this?
Thanks -- Steve