I have a problem updating my data what is wrong with my code? i followed the sample Extracting Values (using column Editors)
| <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Exam.ascx.cs" Inherits="Exam_Exam" %> |
| <%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> |
| <telerik:RadScriptManager ID="RadScriptManager1" Runat="server" OnPreRender="Page_PreRender"> |
| </telerik:RadScriptManager> |
| <asp:Label ID="Label1" Font-Bold="true" Font-Italic="true" Text='<%# Eval("semester_id") %>' Visible="true" runat="server" /> |
| <asp:SqlDataSource ID="SqlDataSource2" runat="server" |
| ConnectionString="<%$ ConnectionStrings:MeetWebStyleConnectionString %>" |
| SelectCommand="MWS_Exams_GetBySemester_id" |
| SelectCommandType="StoredProcedure" InsertCommand="MWS_Exams_Insert" |
| InsertCommandType="StoredProcedure" UpdateCommand="MWS_Exams_Update" |
| UpdateCommandType="StoredProcedure" DeleteCommand="MWS_Exams_Delete" |
| DeleteCommandType="StoredProcedure"> |
| <SelectParameters> |
| <asp:ControlParameter ControlID="RadGrid1" DefaultValue="1" Name="Semester_id" |
| PropertyName="SelectedValue" Type="Int32" /> |
| </SelectParameters> |
| <DeleteParameters> |
| <asp:ControlParameter ControlID="Label1" PropertyName="Text" Type="String" Name="semester_id" /> |
| </DeleteParameters> |
| <UpdateParameters> |
| <asp:ControlParameter ControlID="Label1" PropertyName="Text" Type="String" Name="semester_id" /> |
| </UpdateParameters> |
| <InsertParameters> |
| <asp:Parameter Direction="InputOutput" Name="Exam_id" Type="Int32" /> |
| <asp:Parameter Name="Semester_id" Type="Int32" /> |
| <asp:Parameter Name="Exam_name" Type="String" /> |
| <asp:Parameter Name="Exam_description" Type="String" /> |
| <asp:Parameter Name="Schedule_item_id" Type="Int32" /> |
| <asp:Parameter Name="Library_id" Type="Int32" /> |
| <asp:Parameter Name="Exam_result_grade_id" Type="Int32" /> |
| <asp:Parameter Name="Start_date_range" Type="DateTime" /> |
| <asp:Parameter Name="End_date_range" Type="DateTime" /> |
| <asp:Parameter Name="Subject_id" Type="Int32" /> |
| <asp:Parameter Name="Duration" Type="Decimal" /> |
| </InsertParameters> |
| </asp:SqlDataSource> |
| <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource2" |
| GridLines="None" |
| AutoGenerateEditColumn="false" AllowAutomaticDeletes="True" AllowAutomaticUpdates="false" |
| AllowAutomaticInserts="True" AutoGenerateDeleteColumn="True" OnUpdateCommand="RadGrid1_UpdateCommand" OnNeedDataSource="RadGrid1_NeedDataSource" > |
| <MasterTableView DataSourceID="SqlDataSource2" AutoGenerateColumns="false" |
| CommandItemDisplay="Top" DataKeyNames="semester_id"> |
| <RowIndicatorColumn Visible="False"> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn Visible="False" Resizable="False"> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridBoundColumn DataField="semester_id" HeaderText="Semester" |
| UniqueName="semester_id"> |
| </telerik:GridBoundColumn> |
| <%-- <telerik:GridBoundColumn DataField="subjectName" HeaderText="Subject Name" |
| UniqueName="column2" > |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="examResult" HeaderText="Result" |
| UniqueName="column10"> |
| </telerik:GridBoundColumn>--%> |
| <telerik:GridBoundColumn DataField="start_date_range" HeaderText="Start Date" |
| UniqueName="start_date_range"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="end_date_range" HeaderText="End Date" |
| UniqueName="end_date_range"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="exam_name" HeaderText="Exam Name" |
| UniqueName="exam_name"> |
| </telerik:GridBoundColumn> |
| <telerik:GridEditCommandColumn UpdateText="Update" UniqueName="EditCommandColumn" CancelText="Cancel" |
| EditText="Edit"> |
| </telerik:GridEditCommandColumn> |
| <%-- <telerik:GridBoundColumn DataField="exam_description" HeaderText="Description" |
| UniqueName="column6"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="schedule_item_id" HeaderText="Schedule" |
| UniqueName="column7"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="library_id" HeaderText="Library" |
| UniqueName="column8"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Exam_result_grade_id" HeaderText="Result" |
| UniqueName="column9"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="subject_id" HeaderText="subject" |
| UniqueName="column10"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="duration" HeaderText="Duration" |
| UniqueName="column10"> |
| </telerik:GridBoundColumn>--%> |
| </Columns> |
| <EditFormSettings> |
| <PopUpSettings ScrollBars="None"></PopUpSettings> |
| </EditFormSettings> |
| </MasterTableView> |
| <ClientSettings Selecting-AllowRowSelect="true"> |
| <Selecting AllowRowSelect="True"></Selecting> |
| </ClientSettings> |
| </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.Data.SqlClient; |
| public partial class Exam_Exam : System.Web.UI.UserControl |
| { |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| } |
| protected void Page_PreRender(object sender, System.EventArgs e) |
| { |
| this.RadGrid1.MasterTableView.Rebind(); |
| this.RadGrid1.Rebind(); |
| } |
| public DataSet ExamData |
| { |
| get |
| { |
| object obj = this.Session["ExamsData"]; |
| if (obj != null) |
| { |
| return (DataSet)obj; |
| } |
| DataSet examData = new DataSet(); |
| String ConnString = ConfigurationManager.ConnectionStrings["MeetWebStyleConnectionString"].ConnectionString; |
| SqlConnection conn = new SqlConnection(ConnString); |
| SqlDataAdapter adapter = new SqlDataAdapter(); |
| adapter.SelectCommand = new SqlCommand("SELECT semester_id,start_date_range,end_date_range,exam_name from MWS_Exams", conn); |
| adapter.Fill(examData, "Exam"); |
| this.Session["ExamsData"] = examData; |
| return examData; |
| } |
| } |
| protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) |
| { |
| try |
| { |
| thisthis.RadGrid1.DataSource = this.ExamData; |
| this.ExamData.Tables["Exam"].PrimaryKey = new DataColumn[] { this.ExamData.Tables["Exam"].Columns["semester_id"] }; |
| } |
| catch (Exception ex) |
| { |
| RadGrid1.Controls.Add(new LiteralControl("<strong>Unable to set value of column '" + ex.Message)); |
| } |
| } |
| protected void RadGrid1_UpdateCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) |
| { |
| GridEditableItem eeditedItem = e.Item as GridEditableItem; |
| GridEditManager editMan = editedItem.EditManager; |
| foreach (GridColumn column in e.Item.OwnerTableView.RenderColumns) |
| { |
| if (column is IGridEditableColumn) |
| { |
| IGridEditableColumn editableCol = (column as IGridEditableColumn); |
| if (editableCol.IsEditable) |
| { |
| IGridColumnEditor editor = editMan.GetColumnEditor(editableCol); |
| string editoreditorType = editor.ToString(); |
| string editorText = "unknown"; |
| object editorValue = null; |
| if (editor is GridTextColumnEditor) |
| { |
| editorText = (editor as GridTextColumnEditor).Text; |
| editorValue = (editor as GridTextColumnEditor).Text; |
| } |
| if (editor is GridBoolColumnEditor) |
| { |
| editorText = (editor as GridBoolColumnEditor).Value.ToString(); |
| editorValue = (editor as GridBoolColumnEditor).Value; |
| } |
| if (editor is GridDropDownColumnEditor) |
| { |
| editorText = (editor as GridDropDownColumnEditor).SelectedText + "; " + |
| (editor as GridDropDownColumnEditor).SelectedValue; |
| editorValue = (editor as GridDropDownColumnEditor).SelectedValue; |
| } |
| try |
| { |
| DataRow[] changesRow = this.ExamData.Tables["Exam"].Select("semester_idsemester_id = " + editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["semester_id"]); |
| changesRow[0][column.UniqueName] = editorValue; |
| this.ExamData.Tables["Exam"].AcceptChanges(); |
| } |
| catch (Exception ex) |
| { |
| RadGrid1.Controls.Add(new LiteralControl("<strong>Unable to set value of column '" + column.UniqueName + "'</strong> - " + ex.Message)); |
| e.Canceled = true; |
| break; |
| } |
| } |
| } |
| } |
| } |
| } |
