I am attempting to update a grid's datasource with a JavaScript initiated AJAX request. The code "appears" to work - no errors and the RadAjaxLoadingPanel becomes visible but the grid does not update. Any ideas?
JavaScript:
Asp.Net
C#:
JavaScript:
| function test(itemID, qty, dueDate) |
| { |
| var aryData = new Array(); |
| aryData[0] = itemID; |
| aryData[1] = qty; |
| aryData[2] = dueDate; |
| var ajaxManager = $find("<%= RadAjaxManagerNewWorkOrder.ClientID %>"); |
| ajaxManager.ajaxRequest(aryData.join("|")); |
| return false; |
| } |
| <telerik:RadAjaxManager ID="RadAjaxManagerNewWorkOrder" runat="server" OnAjaxRequest="RadAjaxManagerNewWorkOrder_AjaxRequest"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadAjaxManagerNewWorkOrder"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="rgSelectedKits" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default"> |
| </telerik:RadAjaxLoadingPanel> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnableTheming="True"> |
| </telerik:RadScriptManager> |
| <telerik:RadGrid ID="rgSelectedKits" runat="server" Skin="Web20" EnableLinqExpressions="true" AllowAutomaticUpdates="true" |
| AutoGenerateColumns="False" GridLines="None" AllowSorting="True" > |
| <MasterTableView> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridBoundColumn DataField="ItemID" Display="False" |
| HeaderText="Item ID" UniqueName="ItemID"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="ItemNumber" HeaderText="Item Number" |
| UniqueName="ItemNumber"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="ItemName" HeaderText="Item Name" |
| UniqueName="ItemName"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Quantity" HeaderText="Quantity" |
| UniqueName="Quantity"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="DueDate" HeaderText="Due Date" |
| UniqueName="DueDate"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </MasterTableView> |
| </telerik:RadGrid> |
| using System; |
| using System.Collections; |
| using System.Configuration; |
| using System.Data; |
| using System.Linq; |
| using System.Web; |
| using System.Web.Security; |
| using System.Web.UI; |
| using System.Web.UI.HtmlControls; |
| using System.Web.UI.WebControls; |
| using System.Web.UI.WebControls.WebParts; |
| using System.Xml.Linq; |
| using Telerik.Web.UI; |
| using System.Collections.Generic; |
| public partial class NewWorkOrder : System.Web.UI.Page |
| { |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| if (!IsPostBack) |
| { |
| rgSelectedKits.DataSource = new List<WorkOrderKit>(); |
| } |
| rComboKits.LoadingMessage = "Locating Kit..."; |
| } |
| protected void rComboKits_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) |
| { |
| if (!string.IsNullOrEmpty(e.Text)) |
| { |
| SFAF_PODDataContext db = new SFAF_PODDataContext(); |
| rComboKits.DataTextField = "itemnumber"; |
| rComboKits.DataValueField = "itemid"; |
| List<InvItem> results = (from items in db.InvItems |
| join kitIndicator in db.InvItemKitIndicators on items.itemid equals kitIndicator.itemid |
| where items.itemnumber.ToUpper().StartsWith(e.Text.ToUpper()) || |
| items.itemtext.ToUpper().Contains(e.Text.ToUpper()) |
| && items.custid == 1431 |
| && kitIndicator.IsKit == true |
| select items).ToList(); |
| rComboKits.DataSource = results; |
| rComboKits.DataBind(); |
| } |
| } |
| public void RadAjaxManagerNewWorkOrder_AjaxRequest(object sender, AjaxRequestEventArgs e) |
| { |
| SFAF_PODDataContext db = new SFAF_PODDataContext(); |
| List<String> lstData = e.Argument.Split('|').ToList(); |
| int itemID = Convert.ToInt32(lstData[0]); |
| int qty = Convert.ToInt32(lstData[1]); |
| List<String> dates = lstData[2].Split('/').ToList(); |
| int month = Convert.ToInt32(dates[0]); |
| int day = Convert.ToInt32(dates[1]); |
| int year = Convert.ToInt32(dates[2]); |
| InvItem item = db.InvItems.SingleOrDefault(items => items.itemid == itemID); |
| DateTime dueDate = new DateTime(year, month, day); |
| WorkOrderKit woKit = new WorkOrderKit(itemID, qty, item.itemnumber, item.itemtext, dueDate); |
| UpdateWoKitGrid(woKit); |
| } |
| private void UpdateWoKitGrid(WorkOrderKit woKit) |
| { |
| List<WorkOrderKit> currentGridKits = new List<WorkOrderKit>(); |
| foreach (GridItem item in rgSelectedKits.Items) |
| { |
| currentGridKits.Add((WorkOrderKit)item.DataItem); |
| } |
| currentGridKits.Add(woKit); |
| rgSelectedKits.DataSource = currentGridKits; |
| rgSelectedKits.DataBind(); |
| } |
| } |