Hi all,
I've read a lot of posts concerning this issue so I've tried a lot of different things already. The grid doesn't even launch the gridCreated. The grid is within an Asp form. I've got two other grids in a master/detail scenario setup as web service data sources with the same svc code and they work fine. I've got linq data source and checked that the source is okay as well.
I've got the latest tools version.
Here's my aspx , wcf file and jscript:
Thanks,
-- Jim
I've read a lot of posts concerning this issue so I've tried a lot of different things already. The grid doesn't even launch the gridCreated. The grid is within an Asp form. I've got two other grids in a master/detail scenario setup as web service data sources with the same svc code and they work fine. I've got linq data source and checked that the source is okay as well.
I've got the latest tools version.
Here's my aspx , wcf file and jscript:
function
pageLoad() {
// create references to list of controls from the form
// bind cse notes based on filter
rdCSENotes = $find(
'<%= rlMOView.FindControl("rdGridCSENotes").ClientID %>'
);
var
tableViewCse = rdCSENotes.get_masterTableView();
function
GridCreated(sender, eventArgs) {
alert(
"Grid with ClientID: "
+ sender.get_id() +
" was created"
);
}
function
rdGridNotes_DataBinding(sender, args) {
// bind notes based on id to determine security group
// for identifying filter needs to be applied other than
// mfgorder id
// get form key to filter the notes through
var
hdnMfgKey = document.getElementById(
'ctl00_MainContent_hdnMfgKey'
);
// reference the grid by id
var
rdNotes_id = sender.get_id();
var
arrNotesGridControls =
new
Array(6);
arrNotesGridControls[0] =
"rdGridCSENotes^14"
;
arrNotesGridControls[1] =
"rdGridCSTNotes^15"
;
arrNotesGridControls[2] =
"rdGridBSNotes^16"
;
arrNotesGridControls[3] =
"rdGridQANotes^26"
;
arrNotesGridControls[4] =
"rdGridPurchasingNotes^17"
;
arrNotesGridControls[5] =
"rdGridLogisticsNotes^52"
;
arrNotesGridControls[6] =
"rdGridCustomerSpecNotes^30"
;
// pull the group id
for
(
var
i = 0; i < arrNotesControls.length; i++) {
var
arrSplit = arrNotesControls[i].split(
"^"
);
if
(rdNotes_id.search(arrSplit[0]) != -1) {
// note identified attach the group to the end of the field name
// and fire filter event
var
secGrp = arrSplit[1];
var
filtKey =
"MfgOrderID^"
+ secGrp +
"^"
;
// apply filter to the grid data source include the security group id to handle in the service method
rdCSE = $find(
'<%= rlMOView.FindControl("rdGridCSENotes").ClientID %>'
);
tableView = rdCSE.get_masterTableView();
tableView.filter(filtKey, hdnMfgKey.value,
"EqualTo"
);
break
;
}
}
}
<
telerik:RadGrid
ID
=
"rdGridCSENotes"
GridLines
=
"None"
EnableEmbeddedSkins
=
"False"
Skin
=
"ddiWebBlue"
runat
=
"server"
Height
=
"48px"
Width
=
"875px"
EnableViewState
=
"false"
AutoGenerateColumns
=
"False"
CellSpacing
=
"0"
AllowAutomaticUpdates
=
"false"
AllowAutomaticDeletes
=
"False"
AllowAutomaticInserts
=
"false"
ShowHeader
=
"False"
AllowPaging
=
"false"
>
<
MasterTableView
ShowFooter
=
"false"
AllowNaturalSort
=
"false"
CommandItemDisplay
=
"Top"
ClientDataKeyNames
=
"MfgOrderID"
ItemStyle-CssClass
=
"comments"
NoMasterRecordsText=" <div
style
=
'font-size: 10px; font-family: '
segoe ui',arial,sans-serif;'>No CSE notes currently entered.</
div
>"
TableLayout="Fixed" GridLines="Horizontal" ShowHeadersWhenNoRecords="False">
<
CommandItemSettings
ShowAddNewRecordButton
=
"false"
ShowRefreshButton
=
"false"
/>
<
CommandItemStyle
CssClass
=
"commViewCommand"
/>
<
ItemStyle
CssClass
=
"comments"
/>
<
AlternatingItemStyle
CssClass
=
"comments"
/>
<
Columns
>
<
telerik:GridDateTimeColumn
DataField
=
"StatusDateTime"
DataType
=
"System.DateTime"
ItemStyle-Width
=
"85px"
DataFormatString
=
"{0:MM/dd/yy hh:mm tt}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridBoundColumn
DataField
=
"LogonID"
DataType
=
"System.String"
HeaderText
=
"DisplayName"
UniqueName
=
"DisplayName"
ItemStyle-Width
=
"70px"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"StatusComment"
DataType
=
"System.String"
HeaderText
=
"StatusComment"
UniqueName
=
"StatusComment"
ItemStyle-Wrap
=
"false"
ItemStyle-Width
=
"653px"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
>
<
DataBinding
Location
=
"GridMasterDetailsService.svc"
FilterParameterType
=
"Linq"
SelectMethod
=
"GetNotesDataAndCount"
SortParameterType
=
"Linq"
>
</
DataBinding
>
<
ClientEvents
OnDataBinding
=
"rdGridNotes_DataBinding"
OnGridCreated
=
"GridCreated"
OnCommand
=
"function(){}"
/>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"true"
SaveScrollPosition
=
"True"
>
</
Scrolling
>
</
ClientSettings
>
<
HeaderContextMenu
EnableEmbeddedSkins
=
"False"
CssClass
=
"GridContextMenu GridContextMenu_ddiWebBlue"
>
</
HeaderContextMenu
>
</
telerik:RadGrid
>
using
System;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.Web.Services;
using
System.ServiceModel;
using
System.ServiceModel.Activation;
using
System.ServiceModel.Web;
using
System.Collections.Generic;
using
System.Collections;
using
System.Reflection;
namespace
DataContracts
{
[DataContract]
public
class
MO_POHdr
{
[DataMember]
public
int
MfgAssocDocID {
get
;
set
; }
[DataMember]
public
int
? MfgOrderID {
get
;
set
; }
[DataMember]
public
string
ponumber {
get
;
set
; }
[DataMember]
public
string
vendname {
get
;
set
; }
[DataMember]
public
string
vendorid {
get
;
set
; }
[DataMember]
public
string
country {
get
;
set
; }
[DataMember]
public
string
vndclsid {
get
;
set
; }
[DataMember]
public
DateTime? docdate {
get
;
set
; }
[DataMember]
public
string
hold {
get
;
set
; }
[DataMember]
public
string
shipmthd {
get
;
set
; }
}
[DataContract]
public
class
MOCommentDisplay
{
[DataMember]
public
int
MfgOrderLogID {
get
;
set
; }
[DataMember]
public
int
MfgOrderID {
get
;
set
; }
[DataMember]
public
int
? AccountID {
get
;
set
; }
[DataMember]
public
int
? CommentGroupAccessID {
get
;
set
; }
[DataMember]
public
string
LogonID {
get
;
set
; }
[DataMember]
public
DateTime? StatusDateTime {
get
;
set
; }
[DataMember]
public
int
? PeriodKey {
get
;
set
; }
[DataMember]
public
string
StatusComment {
get
;
set
; }
[DataMember]
public
string
Code {
get
;
set
; }
}
[DataContract]
public
class
PODet
{
[DataMember]
public
string
ponumber {
get
;
set
; }
[DataMember]
public
string
itemnmbr {
get
;
set
; }
[DataMember]
public
decimal
? qtyorder {
get
;
set
; }
[DataMember]
public
string
itemdesc {
get
;
set
; }
[DataMember]
public
string
postatus {
get
;
set
; }
[DataMember]
public
string
shipmthd {
get
;
set
; }
[DataMember]
public
DateTime? released_date {
get
;
set
; }
[DataMember]
public
DateTime? prmdate {
get
;
set
; }
[DataMember]
public
DateTime? reqdate {
get
;
set
; }
}
}
public
class
MyData
{
public
int
Count {
get
;
set
; }
public
IList Data {
get
;
set
; }
}
[ServiceContract]
[ServiceKnownType(
"GetKnownTypes"
)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public
class
GridMasterDetailsService
{
public
static
IEnumerable<Type> GetKnownTypes(ICustomAttributeProvider provider)
{
List<Type> knownTypes =
new
List<System.Type>();
knownTypes.Add(
typeof
(DataContracts.MO_POHdr));
knownTypes.Add(
typeof
(DataContracts.PODet));
knownTypes.Add(
typeof
(DataContracts.MOCommentDisplay));
return
knownTypes;
}
[OperationContract]
public
MyData GetMOPOHdrDataAndCount(
int
startRowIndex,
int
maximumRows,
string
sortExpression,
string
filterExpression)
{
maximumRows = 20;
if
(filterExpression !=
""
)
{
filterExpression = filterExpression.Replace(
"\""
,
string
.Empty);
}
GridBindingData data = RadGrid.GetBindingData(
"AppDataClassesDataContext"
,
"MOAssocDocuments"
, startRowIndex, maximumRows, sortExpression, filterExpression);
MyData result =
new
MyData();
result.Data = data.Data.OfType<MOAssocDocument>().Select(c =>
new
DataContracts.MO_POHdr()
{
MfgAssocDocID = c.MfgAssocDocID,
MfgOrderID = c.MfgOrderID,
ponumber = c.POHdr.ponumber,
vendname = c.POHdr.vendname,
vendorid = c.POHdr.vendorid,
country = c.POHdr.country,
vndclsid = c.POHdr.vndclsid,
docdate = c.POHdr.docdate,
hold = c.POHdr.hold,
shipmthd = c.POHdr.shipmthd
}).ToList();
result.Count = data.Count;
return
result;
}
[OperationContract]
public
MyData GetPODetDataAndCount(
int
startRowIndex,
int
maximumRows,
string
sortExpression,
string
filterExpression)
{
// maximumRows = 50;
GridBindingData data = RadGrid.GetBindingData(
"AppDataClassesDataContext"
,
"PODets"
, startRowIndex, maximumRows, sortExpression, filterExpression);
MyData result =
new
MyData();
result.Data = data.Data.OfType<PODet>().Select(o =>
new
DataContracts.PODet()
{
ponumber = o.ponumber,
itemnmbr = o.itemnmbr,
qtyorder = o.qtyorder,
itemdesc = o.itemdesc,
postatus = o.postatus,
shipmthd = o.shipmthd,
released_date = o.released_date,
prmdate = o.prmdate,
reqdate=o.reqdate
}).ToList();
result.Count = data.Count;
return
result;
}
[OperationContract]
public
MyData GetNotesDataAndCount(
int
startRowIndex,
int
maximumRows,
string
sortExpression,
string
filterExpression)
{
sortExpression =
"StatusDateTime descending"
;
var sSecGrp = filterExpression.Split(
'^'
);
filterExpression =
"CommentGroupAccessID EqualTo "
+ sSecGrp[1] +
" And MfgOrderID = "
+ sSecGrp[2];
GridBindingData data = RadGrid.GetBindingData(
"AppDataClassesDataContext"
,
"MOCommentDisplays"
, startRowIndex, maximumRows, sortExpression, filterExpression);
MyData result =
new
MyData();
result.Data = data.Data.OfType<MOCommentDisplay>().Select(p =>
new
DataContracts.MOCommentDisplay()
{
MfgOrderLogID = p.MfgOrderLogID,
MfgOrderID = p.MfgOrderLogID,
AccountID = p.AccountID,
CommentGroupAccessID = p.CommentGroupAccessID,
LogonID = p.Account.LogonID,
StatusDateTime = p.StatusDateTime,
PeriodKey = p.PeriodKey,
StatusComment = p.StatusComment,
Code = p.CLib.Code
}).ToList();
result.Count = data.Count;
return
result;
}
}
Thanks,
-- Jim