How do i convert this DataList edit and delet to Gridview
I tried to convert this datalist to Gridview but i noticed it doesn't have EditItemTemplate
<asp:DataList ID="dlCustomers" runat="server" >
<HeaderTemplate>
<table>
<tr>
<th>Id</th>
<th>Serial</th>
<th>RangeFRom</th>
<th>RangeTo</th>
<th>Qty</th>
<th>QtyRemaining</th>
<th>Dsc</th>
<th>Price</th>
<th></th>
<th></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:Label ID="lblId" Text='<%#Eval("C_ID") %>' runat="server" /></td>
<td><asp:Label ID="lblserial" Text='<%#Eval("Serial") %>' runat="server" /></td>
<td><asp:Label ID="lblfromthis" Text='<%#Eval("Fromthis") %>' runat="server" /></td>
<td><asp:Label ID="lbltothis" Text='<%#Eval("Tothis") %>' runat="server" /></td>
<td><asp:Label ID="lblqty" Text='<%#Eval("Qty") %>' runat="server" /></td>
<td> <asp:Label ID="Label6" runat="server" Text='<%# Bind("QtyRemaining") %>'></asp:Label></td>
<td><asp:Label ID="lbldsc" Text='<%#Eval("Dsc") %>' runat="server" /></td>
<td><asp:Label ID="lblprice" Text='<%#Eval("Price") %>' runat="server" /></td>
<td>
<asp:LinkButton ID="lnkEdit" runat="server" OnClick="OnEdit" CssClass="btn btn-primary">
<asp:Label ID="Label4" runat="server" Text="" CssClass="fa fa-edit"></asp:Label>
Edit
</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="lnkDelete" runat="server" OnClick="OnDelete" CssClass="btn btn-danger"
OnClientClick="return confirm('Are you sure?')">
<asp:Label ID="Label5" runat="server" Text="" CssClass=" glyphicon glyphicon-trash"></asp:Label>
Delete</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr>
<td><asp:Label ID="lblId" Text='<%#Eval("C_ID") %>' runat="server" /></td>
<td><asp:TextBox ID="txtserial" runat="server" Width="120" Text='<%# Eval("Serial") %>' CssClass="form-control"/></td>
<td><asp:TextBox ID="txtfrom" runat="server" Width="120" Text='<%# Eval("Fromthis") %>' CssClass="form-control"/></td>
<td><asp:TextBox ID="txto" runat="server" Width="120" Text='<%# Eval("Tothis") %>' CssClass="form-control"/></td>
<td><asp:TextBox ID="txtqty" runat="server" Width="120" Text='<%# Eval("Qty") %>' CssClass="form-control"/></td>
<td><asp:TextBox ID="txtQtyRemaining" runat="server" Width="120" Text='<%# Eval("QtyRemaining") %>' CssClass="form-control"/></td>
<td><asp:TextBox ID="txtdsc" runat="server" Width="120" Text='<%# Eval("Dsc") %>' CssClass="form-control"/></td>
<td><asp:TextBox ID="txtprice" runat="server" Width="120" Text='<%# Eval("Price") %>' CssClass="form-control"/></td>
<td>
<asp:LinkButton ID="lnkUpdate" runat="server" OnClick="OnUpdate" CssClass="btn btn-info">
<asp:Label ID="Label6" runat="server" Text="" CssClass="glyphicon glyphicon-check"></asp:Label>
Update</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="lnkCancel" runat="server" OnClick="OnCancel" CssClass="btn btn-warning">
<asp:Label ID="Label7" runat="server" Text="" CssClass=" glyphicon glyphicon-ban-circle"></asp:Label>
Cancel</asp:LinkButton>
</td>
</tr>
</EditItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:DataList>
code
if (!this.IsPostBack)
{
this.BindDatalist();
}
protected void OnDelete(object sender, EventArgs e)
{
DataListItem item = (sender as LinkButton).NamingContainer as DataListItem;
int id = Convert.ToInt32((item.FindControl("lblId") as Label).Text.Trim());
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "DELETE FROM Stock_Table WHERE C_ID = @C_ID";
cmd.Parameters.AddWithValue("@C_ID", id);
InsertUpdateDelete(cmd);
this.BindDatalist();
}
protected void OnEdit(object sender, EventArgs e)
{
DataListItem item = (sender as LinkButton).NamingContainer as DataListItem;
dlCustomers.EditItemIndex = item.ItemIndex;
this.BindDatalist();
}
protected void OnUpdate(object sender, EventArgs e)
{
DataListItem item = (sender as LinkButton).NamingContainer as DataListItem;
int id = Convert.ToInt32((item.FindControl("lblId") as Label).Text.Trim());
// string receipt = (item.FindControl("txtreceipt") as TextBox).Text;
string from = (item.FindControl("txtfrom") as TextBox).Text;
string to = (item.FindControl("txto") as TextBox).Text;
string dsc = (item.FindControl("txtdsc") as TextBox).Text;
string serial = (item.FindControl("txtserial") as TextBox).Text;
string qty = (item.FindControl("txtqty") as TextBox).Text;
string qty2 = (item.FindControl("txtQtyRemaining") as TextBox).Text;
string price = (item.FindControl("txtprice") as TextBox).Text;
// string sum = (item.FindControl("txtsum") as TextBox).Text;
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "UPDATE Stock_Table SET Serial=@Serial, Fromthis=@Fromthis,Tothis=@Tothis,Dsc=@Dsc, Qty=@Qty,QtyRemaining=@QtyRemaining,Price=@Price WHERE C_ID = @C_ID";
cmd.Parameters.AddWithValue("@C_ID", id);
//cmd.Parameters.AddWithValue("@Receipt", receipt);
cmd.Parameters.AddWithValue("@Serial", serial);
cmd.Parameters.AddWithValue("@Fromthis", from);
cmd.Parameters.AddWithValue("@Tothis", to);
cmd.Parameters.AddWithValue("@Dsc", dsc);
cmd.Parameters.AddWithValue("@Qty", qty);
cmd.Parameters.AddWithValue("@QtyRemaining", qty2);
cmd.Parameters.AddWithValue("@Price", price);
// cmd.Parameters.AddWithValue("@Sum", sum);
InsertUpdateDelete(cmd);
dlCustomers.EditItemIndex = -1;
this.BindDatalist();
}
protected void OnCancel(object sender, EventArgs e)
{
dlCustomers.EditItemIndex = -1;
this.BindDatalist();
}
private void BindDatalist()
{
// cmd.CommandText = "INSERT INTO ItemOrdered (Receipt,Serial,Dsc,Qty,Price,Sum) VALUES(@Receipt,@Serial,@Dsc,@Qty,@Price,@Sum)";
string conString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
string query = "SELECT C_ID,Serial,Fromthis,Tothis,Dsc,Qty,QtyRemaining,Price FROM Stock_Table ORDER BY C_ID DESC";
using (SqlConnection con = new SqlConnection(conString))
{
SqlCommand cmd = new SqlCommand(query);
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
dlCustomers.DataSource = dt;
dlCustomers.DataBind();
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
}
private void InsertUpdateDelete(SqlCommand cmd)
{
string conString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
using (SqlConnection con = new SqlConnection(conString))
{
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}