or
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
|
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="IgnoreButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="UnMatchedClientDBCustomers_TelerikRadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="MatchButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="UnMatchedClientDBCustomers_TelerikRadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="UnMatchedClientDBCustomers_TelerikRadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="UnMatchedClientDBCustomers_TelerikRadGrid1" /> <telerik:AjaxUpdatedControl ControlID="PotentialMasterListDBMatches_TelerikRadGrid2" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager><telerik:RadGrid ID="runat" UnMatchedClientDBCustomers_TelerikRadGrid1="server" AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="True" AutoGenerateColumns="false" onneeddatasource="UnMatchedClientDBCustomers_TelerikRadGrid1_NeedDataSource" onitemcommand="UnMatchedClientDBCustomers_TelerikRadGrid1_ItemCommand" Width="80%" Style="min-height: 360px;"> <ClientSettings> <Scrolling AllowScroll="false"/> </ClientSettings> <MasterTableView DataKeyNames="CustomerID, MemberID" TableLayout="Auto"> <ColumnGroups> <telerik:GridColumnGroup Name="Name" HeaderText="Name" HeaderStyle-HorizontalAlign="Center" > </telerik:GridColumnGroup> <telerik:GridColumnGroup Name="Emails" HeaderText="Emails" HeaderStyle-HorizontalAlign="Center" > </telerik:GridColumnGroup> <telerik:GridColumnGroup Name="Match" HeaderText="Match Criteria" HeaderStyle-HorizontalAlign="Center" > </telerik:GridColumnGroup> <telerik:GridColumnGroup Name="Address" HeaderText="Address" HeaderStyle-HorizontalAlign="Center"> </telerik:GridColumnGroup> <telerik:GridColumnGroup Name="Action" HeaderText="Action" HeaderStyle-HorizontalAlign="Center" > </telerik:GridColumnGroup> </ColumnGroups> <CommandItemSettings ExportToPdfText="Export to PDF" ShowExportToExcelButton="true"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"></ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn HeaderText="Ignore" ColumnGroupName="Action" AllowFiltering="false"><HeaderStyle Width="50px" /> <ItemTemplate> <asp:LinkButton ID="IgnoreButton" runat="server" Text="Ignore" OnClientClick="IgnoreConfirm()" CommandName="IgnoreButtonClick" CommandArgument='<%#Eval("CustomerID")%>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="CustomerID" HeaderText="CustomerID" UniqueName="CustomerID" Visible="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="MemberID" HeaderText="Member Number" UniqueName="MemberNumber" ColumnGroupName="Name" FilterControlWidth="50px"><HeaderStyle Width="50px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LastName" HeaderText="Last Name" UniqueName="LastName" ColumnGroupName="Name"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FirstName" HeaderText="First Name" UniqueName="First" ColumnGroupName="Name"><HeaderStyle Width="50px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Email" HeaderText="Email" UniqueName="Email" ColumnGroupName="Emails" FilterControlWidth="130px"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LoginID" HeaderText="Login ID" UniqueName="LoginID" ColumnGroupName="Emails" FilterControlWidth="130px"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="MemberNoMatch" HeaderText="Member Number Match" UniqueName="MemberNoMatch" ColumnGroupName="Match"><HeaderStyle Width="50px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LastNameMatch" HeaderText="Last Name Match" UniqueName="LastNameMatch" ColumnGroupName="Match" FilterControlWidth="130px"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="EmailMatch" HeaderText="Email Match" UniqueName="EmailMatch" ColumnGroupName="Match" FilterControlWidth="130px"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Company" HeaderText="Company" UniqueName="Company" ColumnGroupName="Address"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Address" HeaderText="Address" UniqueName="Address" ColumnGroupName="Address"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="City" HeaderText="City" UniqueName="City" ColumnGroupName="Address" FilterControlWidth="50px"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="State" HeaderText="State" UniqueName="State" ColumnGroupName="Address" FilterControlWidth="30px"><HeaderStyle Width="20px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PostalCode" HeaderText="Postal Code" UniqueName="PostalCode" ColumnGroupName="Address" FilterControlWidth="50px"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Phone" HeaderText="Phone Number" UniqueName="Phone" ColumnGroupName="Address" FilterControlWidth="50px"><HeaderStyle Width="100px" /><ItemStyle Wrap="true" /></telerik:GridBoundColumn> </Columns> <NestedViewTemplate> <div> <telerik:RadGrid ID="PotentialMasterListDBMatches_TelerikRadGrid2" runat="server" OnNeedDataSource="PotentialMasterListDBMatches_TelerikRadGrid2_NeedDataSource" AutoGenerateColumns="false"> <MasterTableView> <Columns> <telerik:GridTemplateColumn HeaderText="Update" ColumnGroupName="Action" AllowFiltering="false"><HeaderStyle Width="40px" /> <ItemTemplate> <asp:LinkButton ID="MatchButton" runat="server" Text="Match" OnClientClick="MatchConfirm()" OnClick="MatchButton_Click" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="ClientDBCustomerID" HeaderText="CustomerID" UniqueName="ClientDBCustomerID" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="MemberID" HeaderText="Member Number" UniqueName="SBMemberNumber" ColumnGroupName="Name"><HeaderStyle Width="50px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LastName" HeaderText="Last Name" UniqueName="Last" ColumnGroupName="Name"><HeaderStyle Width="100px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FullName" HeaderText="Full Name" UniqueName="Full" ColumnGroupName="Name"><HeaderStyle Width="200px" /><HeaderStyle Width="100px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="AdmitDate" HeaderText="Admit Date" UniqueName="AdmitDate" ColumnGroupName="Name"><HeaderStyle Width="25px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Status" HeaderText="Status" UniqueName="Status" ColumnGroupName="Name"><HeaderStyle Width="15px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PrivateEmail" HeaderText="Private Email" UniqueName="PrivateEmail" ColumnGroupName="Emails"><HeaderStyle Width="100px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PublicEmail" HeaderText="Public Email" UniqueName="PublicEmail" ColumnGroupName="Emails"><HeaderStyle Width="100px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FirmName" HeaderText="Firm Name" UniqueName="FirmName" ColumnGroupName="Address"><HeaderStyle Width="100px" /></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Address" HeaderText="Address" UniqueName="Address" ColumnGroupName="Address"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="City" HeaderText="City" UniqueName="City" ColumnGroupName="Address"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="State" HeaderText="State" UniqueName="State" ColumnGroupName="Address"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Country" HeaderText="Country" UniqueName="Country" ColumnGroupName="Address"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ZipCode" HeaderText="Zip Code" UniqueName="ZipCode" ColumnGroupName="Address"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Phone" HeaderText="Phone" UniqueName="Phone" ColumnGroupName="Address"></telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> <%--<asp:LinkButton ID="CustomMatch" runat="server" Text="Custom Match"></asp:LinkButton>--%> </div> </NestedViewTemplate> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> </EditFormSettings> <PagerStyle PageSizes="5,10" PagerTextFormat="{4}Currently we have <strong>{5}</strong> members matching your search criteria" PageSizeLabelText="Members per page:" /> </MasterTableView> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> <FilterMenu EnableImageSprites="False"></FilterMenu> <ExportSettings SuppressColumnDataFormatStrings="false" IgnorePaging="true" HideStructureColumns="true" OpenInNewWindow="true" ExportOnlyData="true"> <Excel Format="Biff"></Excel> </ExportSettings></telerik:RadGrid>protected void Page_Load(object sender, EventArgs e){ if (!IsPostBack) { }}protected void UnMatchedClientDBCustomers_TelerikRadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ List<ClientDBUnmatchedDetail> ClientDBUnmatchedDetails_UnMatchedCustomers_BindToTelerikRadGrid; using (ClientDBEntities ClientDBContext = new ClientDBEntities()) { ClientDBUnmatchedDetails_UnMatchedCustomers_BindToTelerikRadGrid = ClientDBContext.ClientDBUnmatchedDetails.ToList(); } UnMatchedClientDBCustomers_TelerikRadGrid1.DataSource = ClientDBUnmatchedDetails_UnMatchedCustomers_BindToTelerikRadGrid;}protected void PotentialMasterListDBMatches_TelerikRadGrid2_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ GridDataItem parentItem = ((sender as RadGrid).NamingContainer as GridNestedViewItem).ParentItem as GridDataItem; var MemberID = parentItem.GetDataKeyValue("MemberID").ToString(); string CustomerID = parentItem.GetDataKeyValue("CustomerID").ToString(); List<UnMatchedMasterListDBMembers> MasterListDBUnMatchedDetails_PotentialMasterListDBMatches_BindToTelerikRadGrid = null; // If there is match between member numbers if (parentItem["MemberNoMatch"].Text == bool.TrueString) { decimal dMemberID = Convert.ToDecimal(MemberID); using (appsEntities appsEntitiescontext = new appsEntities()) { MasterListDBUnMatchedDetails_PotentialMasterListDBMatches_BindToTelerikRadGrid = appsEntitiescontext.membership_all .Where(x => x.MemNumber == dMemberID) .Select(y => new UnMatchedMasterListDBMembers() { ClientDBCustomerID = CustomerID, MemberDetails = y }).ToList(); } } // If there is match between email addresses else if (parentItem["EmailMatch"].Text == bool.TrueString) { string email = (parentItem["Email"].Text).Trim().ToLower().ToString(); using (var appsEntitiescontext = new appsEntities()) { MasterListDBUnMatchedDetails_PotentialMasterListDBMatches_BindToTelerikRadGrid = appsEntitiescontext.membership_all .Where(x => x.PrivateEmail.Trim().ToLower().ToString() == email || x.PublicEmail.Trim().ToLower().ToString() == email) .Select(y => new UnMatchedMasterListDBMembers() { ClientDBCustomerID = CustomerID, MemberDetails = y }).ToList(); } } // If there is match between Last Names, then get the corresponding MasterDB members else if (parentItem["LastNameMatch"].Text == bool.TrueString) { string lastName = (parentItem["LastName"].Text).Trim().ToLower().ToString(); using (var context = new appsEntities()) { MasterListDBUnMatchedDetails_PotentialMasterListDBMatches_BindToTelerikRadGrid = context.membership_all .Where(x => x.LastName.Trim().ToLower() == lastName) .Select(y => new UnMatchedMasterListDBMembers() { ClientDBCustomerID = CustomerID, MemberDetails = y }).ToList(); } } (sender as RadGrid).DataSource = MasterListDBUnMatchedDetails_PotentialMasterListDBMatches_BindToTelerikRadGrid;}protected void UnMatchedClientDBCustomers_TelerikRadGrid1_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e){ if (e.CommandName == "ExpandCollapse" && e.Item is GridDataItem) { GridDataItem parentItem_ClientDBCustomer_TelerikRADGrid1Row = e.Item as GridDataItem; RadGrid childItem_potentialMasterListDBMemberMatches_TelerikRADGrid2 = parentItem_ClientDBCustomer_TelerikRADGrid1Row.ChildItem.FindControl("PotentialMasterListDBMatches_TelerikRadGrid2") as RadGrid; //rg.ItemCommand += new GridCommandEventHandler(UpdateButton_Click); childItem_potentialMasterListDBMemberMatches_TelerikRADGrid2.Rebind(); } else if (e.CommandName == "IgnoreButtonClick" && e.Item is GridDataItem) { string confirmValue = Request.Form["ConfirmIgnore"]; if (confirmValue == "Yes") { GridDataItem item = e.Item as GridDataItem; var MemberID = item.GetDataKeyValue("MemberID").ToString(); var CustomerID = item.GetDataKeyValue("CustomerID").ToString(); try { using (TransactionScope scope = new TransactionScope()) { using (ClientDBEntities ClientDBContext = new ClientDBEntities()) { // Find the ClientDB customer who's being ignored in the ClientDBUnmatchedDetails db table ClientDBUnmatchedDetail ClientDBUnMatchedDetails_CustomerToBeIgnored = ClientDBContext.ClientDBUnmatchedDetails.Where(x => x.CustomerID == CustomerID).FirstOrDefault(); //check if customer is already in the ClientDBIgnore table bool CustomerAlreadyExistsIn_ClientDBIgnore = false; CustomerAlreadyExistsIn_ClientDBIgnore = ClientDBContext.ClientDBIgnore.Any(x => x.CustomerID == CustomerID); if (!CustomerAlreadyExistsIn_ClientDBIgnore) { //add the Ignored ClientDB Customer to the ClientDBIgnore db table ClientDBContext.ClientDBIgnore.AddObject( new ClientDBIgnore() { CustomerID = CustomerID.ToString(), MemberID = MemberID, FirstName = ClientDBUnMatchedDetails_CustomerToBeIgnored.FirstName, LastName = ClientDBUnMatchedDetails_CustomerToBeIgnored.LastName, Email = ClientDBUnMatchedDetails_CustomerToBeIgnored.Email, LoginID = ClientDBUnMatchedDetails_CustomerToBeIgnored.LoginID, Company = ClientDBUnMatchedDetails_CustomerToBeIgnored.Company, Address = ClientDBUnMatchedDetails_CustomerToBeIgnored.Address, City = ClientDBUnMatchedDetails_CustomerToBeIgnored.City, State = ClientDBUnMatchedDetails_CustomerToBeIgnored.State, PostalCode = ClientDBUnMatchedDetails_CustomerToBeIgnored.PostalCode, MemberNoMatch = ClientDBUnMatchedDetails_CustomerToBeIgnored.MemberNoMatch, LastNameMatch = ClientDBUnMatchedDetails_CustomerToBeIgnored.LastNameMatch, EmailMatch = ClientDBUnMatchedDetails_CustomerToBeIgnored.EmailMatch } ); } // No need to do anything to the associated courses/credits information because they will already be in the ClientDBUnMatchedCreditDetails db table //delete the Ignored ClientDB Customer from the ClientDBUnmatchedDetails db table ClientDBContext.ClientDBUnmatchedDetails.DeleteObject(ClientDBUnMatchedDetails_CustomerToBeIgnored); // Save changes ClientDBContext.SaveChanges(); //scope.Complete(); } scope.Complete(); } UnMatchedClientDBCustomers_TelerikRadGrid1.Rebind(); // If Transaction successfull and complete, notify the user ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('ClientDB Customer Ignored')", true); } catch (Exception Ex) { // In case of failure, notify the user ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Error Ignoring the ClientDB Customer. Try doin it again or please call IT HelpDesk')", true); } } }}public void MatchButton_Click(object sender, EventArgs e){ string confirmValue = Request.Form["ConfirmMatch"]; if (confirmValue == "Yes") { GridDataItem ClientDBCustomer_TelerikRADGrid1Row = ((LinkButton)sender).Parent.Parent as GridDataItem; var MemberID = ClientDBCustomer_TelerikRADGrid1Row["MasterListDBMemberNumber"].Text; var CustomerID = ClientDBCustomer_TelerikRADGrid1Row["ClientDBCustomerID"].Text; try { using (TransactionScope scope = new TransactionScope()) { using (ClientDBEntities ClientDBContext = new ClientDBEntities()) { //find the manually matched ClientDB customer in the ClientDBUnmatchedDetails table ClientDBUnmatchedDetail deleteClientDBUnMatchedMemberObject = ClientDBContext.ClientDBUnmatchedDetails.Where(x => x.CustomerID == CustomerID).Single(); // check if customer is already in the ClientDBRules tables bool CustomerAlreadyExistsIn_ClientDBRules = false; CustomerAlreadyExistsIn_ClientDBRules = ClientDBContext.ClientDBRules.Any(x => x.CustomerID == CustomerID); if (!CustomerAlreadyExistsIn_ClientDBRules) { //add the manually matched ClientDB Customer to the ClientDBRules db table ClientDBContext.ClientDBRules.AddObject( new ClientDBRule() { CustomerID = CustomerID, MemberID = MemberID, FirstName = deleteClientDBUnMatchedMemberObject.FirstName, LastName = deleteClientDBUnMatchedMemberObject.LastName, Email = deleteClientDBUnMatchedMemberObject.Email, LoginID = deleteClientDBUnMatchedMemberObject.LoginID, Company = deleteClientDBUnMatchedMemberObject.Company, Address = deleteClientDBUnMatchedMemberObject.Address, City = deleteClientDBUnMatchedMemberObject.City, State = deleteClientDBUnMatchedMemberObject.State, PostalCode = deleteClientDBUnMatchedMemberObject.PostalCode, MemberNoMatch = deleteClientDBUnMatchedMemberObject.MemberNoMatch, LastNameMatch = deleteClientDBUnMatchedMemberObject.LastNameMatch, EmailMatch = deleteClientDBUnMatchedMemberObject.EmailMatch } ); } //find all matching courses/credits (and which will be removed) from the ClientDBUnMatchedCreditDetails table for this ClientDB customer IQueryable<ClientDBUnMatchedCreditDetails> deleteClientDBUnmatchedCreditDetailsObjects = ClientDBContext.ClientDBUnMatchedCreditDetails.Where(x => x.CustomerID == CustomerID); //for each matching course in the ClientDBUnMatchedCreditDetails table foreach (ClientDBUnMatchedCreditDetails deleteClientDBUnmatchedCreditDetailsObject in deleteClientDBUnmatchedCreditDetailsObjects) { //if course does not exist in ClientDBCreditDetails table, add that course to ClientDBCreditDetails bool courseAlreadyExistsInClientDBCreditDetails = false; //courseAlreadyExistsInClientDBCreditDetails = ClientDBContext.ClientDBCreditDetails.Where(x => x.RegistrationID == deleteClientDBUnmatchedCreditDetailsObject.RegistrationID).SingleOrDefault() != null; courseAlreadyExistsInClientDBCreditDetails = ClientDBContext.ClientDBCreditDetails.Any(x => x.RegistrationID == deleteClientDBUnmatchedCreditDetailsObject.RegistrationID); if (!courseAlreadyExistsInClientDBCreditDetails) { //add course to ClientDBCreditDetails ClientDBContext.ClientDBCreditDetails.AddObject( new ClientDBCreditDetail() { RegistrationID = deleteClientDBUnmatchedCreditDetailsObject.RegistrationID, CustomerID = deleteClientDBUnmatchedCreditDetailsObject.CustomerID, MemberID = deleteClientDBUnmatchedCreditDetailsObject.MemberID, CreditType = deleteClientDBUnmatchedCreditDetailsObject.CreditType, TotalHours = deleteClientDBUnmatchedCreditDetailsObject.TotalHours, General = deleteClientDBUnmatchedCreditDetailsObject.General, Ethics = deleteClientDBUnmatchedCreditDetailsObject.Ethics, Bias = deleteClientDBUnmatchedCreditDetailsObject.Bias, SubstanceAbuse = deleteClientDBUnmatchedCreditDetailsObject.SubstanceAbuse, Other = deleteClientDBUnmatchedCreditDetailsObject.Other, ProductID = deleteClientDBUnmatchedCreditDetailsObject.ProductID, ProductTitle = deleteClientDBUnmatchedCreditDetailsObject.ProductTitle, CompletionDate = deleteClientDBUnmatchedCreditDetailsObject.CompletionDate, } ); } // else // do nothing // and then delete that course from the ClientDBUnMatchedCreditDetails table ClientDBContext.ClientDBUnMatchedCreditDetails.DeleteObject(deleteClientDBUnmatchedCreditDetailsObject); } //delete the manually matched ClientDB Customer from ClientDBUnmatchedDetails db table ClientDBContext.ClientDBUnmatchedDetails.DeleteObject(deleteClientDBUnMatchedMemberObject); //save changes to the db ClientDBContext.SaveChanges(); //scope.Complete(); } scope.Complete(); } UnMatchedClientDBCustomers_TelerikRadGrid1.Rebind(); // If Transaction successfull and complete, notify the user ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Match Successful')", true); } catch (Exception Ex) { // In case of failure, notify the user ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Error Executing the match rule. Try doing it again or please call IT HelpDesk')", true); } }}I'm trying to get Knockout to work the treeview so I needed to get the "data-bind" attribute added to the checkbox that is generated.
I couldn't get it to work in the NodeDataBound when using e.Node.Attributes.Add("data-bind", "myBinding: myObservableArray")...This wasn't being added to the actual HTML which Knockout needs.
So I tried using the NodeTemplate to be able to customize the HTML checkboxes. Anyway, Child elements are checked when it's parent is using NodeTemplates with "CheckChildNodes = true"
<NodeTemplate>
<input type="checkbox" value="<%# DataBinder.Eval(Container, "Id") %>" data-bind="myBinding: myObservableArray" />
....

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="datagrid.aspx.cs" Inherits="ManageEDI.datagrid" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><%@ Register assembly="Telerik.OpenAccess.Web.40" namespace="Telerik.OpenAccess.Web" tagprefix="telerik" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManagerAll" runat="server"> </telerik:RadScriptManager> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"></telerik:RadAjaxManager> <div> <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateEditColumn="True" CellSpacing="0" DataSourceID="OpenAccessLinqDataSource1" GridLines="None" OnUpdateCommand="RadGrid1_UpdateCommand" OnItemUpdated="RadGrid1_ItemUpdated"><ExportSettings><Pdf><PageHeader><LeftCell Text=""></LeftCell><MiddleCell Text=""></MiddleCell><RightCell Text=""></RightCell></PageHeader><PageFooter><LeftCell Text=""></LeftCell><MiddleCell Text=""></MiddleCell><RightCell Text=""></RightCell></PageFooter></Pdf></ExportSettings><MasterTableView AutoGenerateColumns="False" DataKeyNames="EdiID" DataSourceID="OpenAccessLinqDataSource1" EditMode="InPlace"><CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings><RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"><HeaderStyle Width="20px"></HeaderStyle></RowIndicatorColumn><ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column" Created="True"><HeaderStyle Width="20px"></HeaderStyle></ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="Status" DataType="System.Int32" FilterControlAltText="Filter Status column" HeaderText="Status" SortExpression="Status" UniqueName="Status"> <ColumnValidationSettings> <ModelErrorMessage Text="" /> </ColumnValidationSettings> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="NoApl" FilterControlAltText="Filter NoApl column" HeaderText="NoApl" SortExpression="NoApl" UniqueName="NoApl"> <ColumnValidationSettings> <ModelErrorMessage Text="" /> </ColumnValidationSettings> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ETA" DataType="System.DateTime" FilterControlAltText="Filter ETA column" HeaderText="ETA" SortExpression="ETA" UniqueName="ETA"> <ColumnValidationSettings> <ModelErrorMessage Text="" /> </ColumnValidationSettings> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Note" FilterControlAltText="Filter Note column" HeaderText="Note" SortExpression="Note" UniqueName="Note"> <ColumnValidationSettings> <ModelErrorMessage Text="" /> </ColumnValidationSettings> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CommandeID" DataType="System.Int32" FilterControlAltText="Filter CommandeID column" HeaderText="CommandeID" SortExpression="CommandeID" UniqueName="CommandeID"> <ColumnValidationSettings> <ModelErrorMessage Text="" /> </ColumnValidationSettings> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="EdiID" DataType="System.Int32" FilterControlAltText="Filter EdiID column" HeaderText="EdiID" ReadOnly="True" SortExpression="EdiID" UniqueName="EdiID"> <ColumnValidationSettings> <ModelErrorMessage Text="" /> </ColumnValidationSettings> </telerik:GridBoundColumn> </Columns><EditFormSettings><EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn></EditFormSettings><BatchEditingSettings EditType="Cell"></BatchEditingSettings><PagerStyle PageSizeControlType="RadComboBox"></PagerStyle></MasterTableView><PagerStyle PageSizeControlType="RadComboBox"></PagerStyle><FilterMenu EnableImageSprites="False"></FilterMenu> </telerik:RadGrid> <telerik:OpenAccessLinqDataSource ID="OpenAccessLinqDataSource1" runat="server" ContextTypeName="ManageEDIModel.EntitiesModelLegare" EntityTypeName="" ResourceSetName="tblEDIs"> </telerik:OpenAccessLinqDataSource> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:LEGAREConnection %>" SelectCommand="ListEDI" SelectCommandType="StoredProcedure"></asp:SqlDataSource> </div> </form></body></html>using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using ManageEDIModel;using Telerik.Web.UI.GridExcelBuilder;using Xceed.FileSystem;using Xceed.Ftp;namespace ManageEDI{ public partial class datagrid : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void RadGrid1_UpdateCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) { GridEditableItem editedItem = e.Item as GridEditableItem; string c = editedItem["CommandeID"].Text; string a = editedItem["NoApl"].Text; } protected void RadGrid1_ItemUpdated(object sender, GridUpdatedEventArgs e) { } }}