I after a few hours of trying, I am not succeeding. My Grid, upon clicking Save, is not sending that data to the mysql database. Please see code below:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using MySql.Data.MySqlClient;
namespace Sample1
{
public partial class powderstock : System.Web.UI.Page
{
DataTable dt = new DataTable("Order");
protected void Page_Load(object sender, EventArgs e)
{
if (Session["username"] != null)
{
Session["username"].ToString();
Session.Timeout = 120;
LoadGrid();
}
else
{
Response.Redirect("Login.aspx");
}
}
protected void grid_stock_ServerEditRow(object sender, Syncfusion.JavaScript.Web.GridEventArgs e)
{
EditAction(e.EventType, e.Arguments["data"]);
}
private void LoadGrid()
{
MySqlConnection myConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["mySql"].ToString());
dt = new DataTable("Order");
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = myConnection;
cmd.CommandText = "SELECT * FROM tbl_psl";
cmd.CommandType = CommandType.Text;
MySqlDataAdapter da = new MySqlDataAdapter();
da.SelectCommand = cmd;
if (myConnection.State == ConnectionState.Closed)
{
myConnection.Open();
}
da.Fill(dt);
Session["SqlDataSource"] = dt;
grid_stock.DataSource = dt;
grid_stock.DataBind();
}
protected void EditAction(string eventType, object record)
{
MySqlConnection myConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["mySql"].ToString());
dt = Session["SqlDataSource"] as DataTable;
Dictionary<string, object> KeyVal = record as Dictionary<string, object>;
if (eventType == "endEdit")
{
var Order = KeyVal.Values.ToArray();
foreach (DataRow dr in dt.Rows)
{
if (Convert.ToInt32(dr["EntryID"]) == Convert.ToInt32(Order[0]))
{
dr["Paint_Code"] = Order[2];
dr["Match"] = Order[3];
dr["Int_Ext"] = Order[4];
dr["Current_Stock_KG"] = Order[5];
dr["Usable_Recycle_KG"] = Order[6];
dr["Total_Stock"] = Order[7];
dr["Powder_To_Order"] = Order[8];
dr["Comments"] = Order[9];
dr["Date"] = Order[10];
dr.AcceptChanges();
}
}
}
else if (eventType == "endAdd")
{
var Order = KeyVal.Values.ToArray();
DataRow dr = dt.NewRow();
dr["SupplierName"] = Order[1];
dr["Paint_Code"] = Order[2];
dr["Match"] = Order[3];
dr["Int_Ext"] = Order[4];
dr["Current_Stock_KG"] = Order[5];
dr["Usable_Recycle_KG"] = Order[6];
dr["Total_Stock"] = Order[7];
dr["Powder_To_Order"] = Order[8];
dr["Comments"] = Order[9];
dr["Date"] = Order[10];
dt.Rows.Add(dr);
}
else if (eventType == "endDelete")
{
var Order = KeyVal.Values.ToArray();
if (Session["SqlDataSource"] != null)
{
DataRow[] rows = dt.Select("EntryID = " + Order[0]);
foreach (DataRow row in rows)
dt.Rows.Remove(row);
}
}
Session["SqlDataSource"] = dt;
grid_stock.DataSource = dt;
grid_stock.DataBind();
}
protected void grid_stock_ServerDeleteRow(object sender, Syncfusion.JavaScript.Web.GridEventArgs e)
{
EditAction(e.EventType, e.Arguments["data"]);
}
protected void grid_stock_ServerAddRow(object sender, Syncfusion.JavaScript.Web.GridEventArgs e)
{
EditAction(e.EventType, e.Arguments["data"]);
}
}
}
<ej:Grid ID="grid_stock" runat="server" AllowFiltering="True" AllowSorting="True" AllowTextWrap="True" OnServerAddRow="grid_stock_ServerAddRow" OnServerDeleteRow="grid_stock_ServerDeleteRow" OnServerEditRow="grid_stock_ServerEditRow">
<EditSettings AllowEditing="true" AllowAdding="true" AllowDeleting="true"></EditSettings>
<ToolbarSettings ShowToolbar="True" ToolbarItems="add,edit,delete,update,cancel"></ToolbarSettings>
<ej:Column Field="EntryID" HeaderText="Entry ID" IsPrimaryKey="True">
<ej:Column Field="SupplierName" HeaderText="Supplier Name">
<ej:Column Field="Paint_Code" HeaderText="Paint Code">
<ej:Column Field="Current_Stock_KG" HeaderText="Current Stock">
<ej:Column Field="Usable_Recycle_KG" HeaderText="Recycled Stock">
<ej:Column Field="Total_Stock" HeaderText="Total Stock">
<ej:Column Field="Powder_To_Order" HeaderText="To Order">