So I am trying to use a radgrid to allow updates to my database, and while the page functions properly, I can't seem to save the data back to the database, any help you can offer would be appreciated greatly. I am new to both C# and asp.
Page Code:
and the Code behind:
Page Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ValidationEdit.aspx.cs" Inherits="EditPages_ValidationEdit" MasterPageFile="~/EUEMain.master" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><asp:Content ID="Content1" ContentPlaceHolderID="cphLeftNav" runat="Server"> <asp:HyperLink ID="HomeLink" runat="server" NavigateUrl="..\Default.aspx" Text="Home" /> <br /> <asp:HyperLink ID="AddLink" runat="server" Text="Status Edit Page" /> <br /></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="cphContent" runat="Server"> <p></p><p></p><p></p> <h1>Subdivision Statuses</h1> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager><telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" /> <telerik:RadGrid ID="RadGrid1" runat="server" DataModelID="Status" AllowPaging="True" AllowAutomaticUpdates="True" AllowAutomaticInserts="True" AllowAutomaticDeletes="true" AllowSorting="true" OnItemCreated="RadGrid1_ItemCreated" OnItemInserted="RadGrid1_ItemInserted" OnPreRender="RadGrid1_PreRender" OnInsertCommand="RadGrid1_InsertCommand" OnNeedDataSource="Radgrid1_NeedDataSource"> <PagerStyle Mode="NextPrevAndNumeric" /> <MasterTableView AutoGenerateColumns="False" DataKeyNames="Description" CommandItemDisplay="Top"> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="Description" HeaderText="Description" SortExpression="Description" UniqueName="Description" > </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="Visible" HeaderText="Visible" SortExpression="Visible" UniqueName="Visible"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="StatusType" HeaderText="Status Type" UniqueName="StatusType"></telerik:GridBoundColumn> <telerik:GridButtonColumn Text="Delete" CommandName="Delete" ButtonType="ImageButton" /> </Columns> <EditFormSettings> <EditColumn ButtonType="ImageButton" /> </EditFormSettings> </MasterTableView> </telerik:RadGrid> <h1> Track Statuses <telerik:RadGrid ID="RadGrid2" runat="server" DataModelID="Status" AllowPaging="True" AllowAutomaticUpdates="True" AllowAutomaticInserts="True" AllowAutomaticDeletes="true" AllowSorting="true" OnItemCreated="RadGrid1_ItemCreated" OnItemInserted="RadGrid1_ItemInserted" OnPreRender="RadGrid1_PreRender" OnInsertCommand="RadGrid1_InsertCommand" OnNeedDataSource="Radgrid1_NeedDataSource"> <PagerStyle Mode="NextPrevAndNumeric" /> <MasterTableView AutoGenerateColumns="False" DataKeyNames="Description" CommandItemDisplay="Top"> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="Description" HeaderText="Description" SortExpression="Description" UniqueName="Description" > </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="Visible" HeaderText="Visible" SortExpression="Visible" UniqueName="Visible"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="StatusType" HeaderText="Status Type" UniqueName="StatusType"></telerik:GridBoundColumn> <telerik:GridButtonColumn Text="Delete" CommandName="Delete" ButtonType="ImageButton" /> </Columns> <EditFormSettings> <EditColumn ButtonType="ImageButton" /> </EditFormSettings> </MasterTableView> </telerik:RadGrid> </h1> <asp:EntityDataSource ID="EntityDataSourceStatus" runat="server" ConnectionString="name=PtcDbModelEntities" DefaultContainerName="PtcDbModelEntities" EntitySetName="Status" OrderBy="it.[ContactName]" EntityTypeFilter="Description" EnableDelete="True" EnableFlattening="False" EnableInsert="True" EnableUpdate="True"> </asp:EntityDataSource></asp:Content>and the Code behind:
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Web.UI;using Model;using Telerik.Web.UI;public partial class EditPages_ValidationEdit : BNSF.EUECommonApplication.EUEBasePage{ public List<Status> StatusList { get; set; } public object CurrentSubStatusList { get; set; } protected void Page_Load(object sender, EventArgs e) { AddLink.NavigateUrl = @"..\EditPages\ValidationEdit"; if (!Page.IsPostBack) { using (PtcDbModel localDb = new PtcDbModel()) { var localTemp = (from tempList in localDb.Status where tempList.StatusType == "S" select tempList) .ToList(); var localTemp2 = (from tempList in localDb.Status where tempList.StatusType == "T" select tempList) .ToList(); CurrentSubStatusList = localTemp; CurrentTrackStatusList = localTemp2; var tempDetailList = CurrentSubStatusList; var tempDetailList2 = CurrentTrackStatusList; RadGrid1.DataSource = tempDetailList; RadGrid2.DataSource = tempDetailList2; } } } public List<Status> CurrentTrackStatusList { get; set; } protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e) { if (e.Item is GridEditableItem && e.Item.IsInEditMode) { if (!(e.Item is GridEditFormInsertItem)) { GridEditableItem item = e.Item as GridEditableItem; GridEditManager manager = item.EditManager; GridTextBoxColumnEditor editor = manager.GetColumnEditor("Description") as GridTextBoxColumnEditor; editor.TextBoxControl.Enabled = true; } } } protected void RadGrid1_ItemInserted(object source, GridInsertedEventArgs e) { if (e.Exception != null) { e.ExceptionHandled = true; SetMessage("Customer cannot be inserted. Reason: " + e.Exception.Message); } else { SetMessage("New customer is inserted!"); } } private void DisplayMessage(string text) { RadGrid1.Controls.Add(new LiteralControl(string.Format("<span style='color:red'>{0}</span>", text))); } private void SetMessage(string message) { gridMessage = message; } private string gridMessage = null; protected void RadGrid1_PreRender(object sender, EventArgs e) { if (!string.IsNullOrEmpty(gridMessage)) { DisplayMessage(gridMessage); RadGrid1.DataBind(); RadGrid2.DataBind(); } } protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e) { if (e.Item is GridEditableItem) { GridEditableItem editedItem = e.Item as GridEditableItem; //here editedItem.SavedOldValues will be the dictionary which holds the //predefined values //Prepare new dictionary object Hashtable newValues = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem); //the newValues instance is the new collection of key -> value pairs //with the updated ny the user data } } protected void Radgrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { using (PtcDbModel localDb = new PtcDbModel()) { var localTemp = (from tempList in localDb.Status where tempList.StatusType == "S" select tempList) .ToList(); var localTemp2 = (from tempList in localDb.Status where tempList.StatusType == "T" select tempList) .ToList(); CurrentSubStatusList = localTemp; CurrentTrackStatusList = localTemp2; var tempDetailList = CurrentSubStatusList; var tempDetailList2 = CurrentTrackStatusList; RadGrid1.DataSource = tempDetailList; RadGrid2.DataSource = tempDetailList2; } }}