Telerik experts,
Here is my code. I can't update my dynamic RadGrid.
Otherwise no problem to update a normally generated RadGrid.
I must be missing something very basic ...
Here is my code. I can't update my dynamic RadGrid.
Otherwise no problem to update a normally generated RadGrid.
I must be missing something very basic ...
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Northwind2.aspx.cs" Inherits="Northwind2" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head runat="server"> |
| <title>Northwind2</title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> |
| <!-- content start --> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadGrid2"> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <div> |
| <br /> |
| <asp:PlaceHolder ID="PlaceHolder1" runat="server" /> |
| <br /> |
| <telerik:RadGrid ID="RadGrid2" EnableViewState="true" AllowAutomaticUpdates="True" OnUpdateCommand="grid_UpdateCommand" |
| OnNeedDataSource="RadGrid2_NeedDataSource" Width="400px" |
| runat="server" AutoGenerateColumns="false" AllowSorting="False" AllowMultiRowSelection="False" GridLines="None"> |
| <MasterTableView ItemStyle-Wrap="false" Name="Employees" ShowHeader="true" DataKeyNames="EmployeeID" |
| EditMode="InPlace" BorderWidth="0" EnableColumnsViewState="true" Width="400px"> |
| <HeaderStyle Wrap="false" Height="20px" Font-Size="X-Small" Font-Bold="true"/> |
| <AlternatingItemStyle Height="20px" BackColor="BlanchedAlmond" Wrap="false" BorderWidth="0" Font-Size="X-Small"/> |
| <ItemStyle Height="20px" BackColor="Azure" Wrap="false" BorderWidth="0" Font-Size="X-Small"/> |
| <EditItemStyle Height="20px" Wrap="false" BorderWidth="0" Font-Size="X-Small"/> |
| <Columns> |
| <telerik:GridBoundColumn DataField="EmployeeID" HeaderText="EmployeeID" ItemStyle-Height="20px" ItemStyle-Width="150" ItemStyle-HorizontalAlign="Left" HeaderStyle-Width="150" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="LastName" HeaderText="LastName" ItemStyle-Height="20px" ItemStyle-Width="150" ItemStyle-HorizontalAlign="Left" HeaderStyle-Width="150" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="FirstName" HeaderText="FirstName" ItemStyle-Height="20px" ItemStyle-Width="150" ItemStyle-HorizontalAlign="Left" HeaderStyle-Width="150" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> |
| <telerik:GridEditCommandColumn ></telerik:GridEditCommandColumn> |
| </Columns> |
| </MasterTableView> |
| <clientsettings allowexpandcollapse="false"> |
| <Scrolling AllowScroll="false" UseStaticHeaders="true"></Scrolling> |
| </clientsettings> |
| </telerik:RadGrid> |
| </div> |
| </form> |
| </body> |
| </html> |
| '------------------------------------------------------------- |
| '------------------------------------------------------------- |
| '------------------------------------------------------------- |
| using System; |
| using System.Collections; |
| using System.Collections.Generic; |
| using System.Linq; |
| using System.Web; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using System.Web.UI.HtmlControls; |
| using System.Data; |
| using System.Data.Sql; |
| using System.Data.SqlClient; |
| using Telerik.Web.UI; |
| using System.Reflection; |
| public partial class Northwind2 : System.Web.UI.Page |
| { |
| //Declare a global DataTable dtTable1 |
| DataTable dtTable1 = new DataTable(); |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| } |
| protected void Page_Init(object sender, System.EventArgs e) |
| { |
| PopulateGridOnPageInit(); |
| } |
| protected void PopulateGridOnPageInit() |
| { |
| RadGrid grid = new RadGrid(); |
| grid.ID = "grid"; |
| grid.Width = Unit.Pixel(400); |
| grid.AllowSorting = true; |
| grid.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric; |
| grid.AllowPaging = true; |
| grid.AllowAutomaticUpdates = false; |
| grid.Skin = "Sunset"; |
| grid.MasterTableView.AutoGenerateColumns = false; |
| grid.MasterTableView.EnableColumnsViewState = false; |
| grid.MasterTableView.EditMode = GridEditMode.InPlace; |
| grid.MasterTableView.EnableViewState=true ; |
| grid.UpdateCommand +=new GridCommandEventHandler(grid_UpdateCommand); |
| GridBoundColumn boundColumn; |
| boundColumn = new GridBoundColumn(); |
| boundColumn.HeaderText = "EmployeeID"; |
| boundColumn.DataField = "EmployeeID"; |
| //boundColumn.UniqueName = "EmployeeID"; |
| grid.MasterTableView.Columns.Add(boundColumn); |
| boundColumn = new GridBoundColumn(); |
| boundColumn.HeaderText = "LastName"; |
| boundColumn.DataField = "LastName"; |
| //boundColumn.UniqueName = "LastName"; |
| grid.MasterTableView.Columns.Add(boundColumn); |
| boundColumn = new GridBoundColumn(); |
| boundColumn.HeaderText = "FirstName"; |
| boundColumn.DataField = "FirstName"; |
| //boundColumn.UniqueName = "FirstName"; |
| grid.MasterTableView.Columns.Add(boundColumn); |
| GridEditCommandColumn gcEdit = new GridEditCommandColumn(); |
| grid.MasterTableView.Columns.Add(gcEdit); |
| grid.DataSource = LoadData(); |
| grid.DataBind(); |
| PlaceHolder1.Controls.Add(grid); |
| } |
| protected void RadGrid2_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| RadGrid2.DataSource = LoadData(); |
| } |
| protected void grid_UpdateCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) |
| { |
| //Get the GridEditableItem of the RadGrid |
| GridEditableItem eeeditedItem = e.Item as GridEditableItem; |
| //Get the primary key value using the DataKeyValue. |
| string EmployeeID = editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["EmployeeID"].ToString(); |
| //Access the textbox from the edit form template and store the values in string variables. |
| string LastName = (editedItem["LastName"].Controls[0] as TextBox).Text; |
| string FirstName = (editedItem["FirstName"].Controls[0] as TextBox).Text; |
| try |
| { |
| SqlConnection SqlConnection = new SqlConnection(GetConnectionString()); |
| SqlCommand SqlCommand1 = new SqlCommand(); |
| //Open the SqlConnection |
| SqlConnection.Open(); |
| //Update Query to update the Datatable |
| string updateQuery = " UPDATE Employees " + |
| " SET LastName='" + LastName + "'," + |
| " FirstName='" + FirstName + "'" + |
| " WHERE EmployeeID=" + EmployeeID ; |
| SqlCommand1.CommandText = updateQuery; |
| SqlCommand1.Connection = SqlConnection; |
| SqlCommand1.ExecuteNonQuery(); |
| //Close the SqlConnection |
| SqlConnection.Close(); |
| } |
| catch (Exception ex) |
| { |
| RadGrid2.Controls.Add(new LiteralControl("Unable to update Employee. Reason: " + ex.Message)); |
| e.Canceled = true; |
| } |
| finally |
| { |
| RadGrid2.EditIndexes.Clear(); |
| } |
| } |
| protected DataTable LoadData() |
| { |
| string connectionString = GetConnectionString(); |
| SqlConnection SqlConnection = new SqlConnection(connectionString); |
| DataTable dtTable = new DataTable(); |
| //Declare a global SqlDataAdapter SqlDataAdapter1 |
| SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(); |
| //Declare a global SqlCommand SqlCommand |
| SqlCommand SqlCommand1 = new SqlCommand(); |
| //Open the SqlConnection |
| SqlConnection.Open(); |
| try |
| { |
| //Select Query to populate the RadGrid with data from table Employees. |
| string selectQuery = "SELECT EmployeeID, LastName, FirstName, Title, ReportsTo from Employees"; |
| SqlDataAdapter1.SelectCommand = new SqlCommand(selectQuery, SqlConnection); |
| SqlDataAdapter1.Fill(dtTable); |
| return dtTable; |
| } |
| finally |
| { |
| //Close the SqlConnection |
| SqlConnection.Close(); |
| } |
| } |
| static private string GetConnectionString() |
| { |
| return "server=STATION00374;database=Northwind;Integrated Security=SSPI;"; |
| } |
| } |