page looks like
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Transaction="Supported" %>
<!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></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>
<div>
<asp:UpdatePanel ID="up" runat="server">
<ContentTemplate>
<table align="center">
<tr><td>EID</td><td><asp:TextBox ID="tb" runat="server"></asp:TextBox></td></tr>
<tr><td>NAME</td><td><asp:TextBox ID="tb1" runat="server"></asp:TextBox></td></tr>
<tr><td>DEPARTMENT NAME</td><td><asp:DropDownList ID="ddl" runat="server"></asp:DropDownList> <asp:Button
ID="btn" runat="server" Text="Add More" onclick="btn_Click" /></td></tr>
<tr><td> </td><td><asp:GridView ID="gv" runat="server" DataKeyNames="did"
AutoGenerateColumns="false" onrowcancelingedit="gv_RowCancelingEdit"
onrowdeleting="gv_RowDeleting" onrowediting="gv_RowEditing"
onrowupdating="gv_RowUpdating" >
<Columns>
<asp:CommandField HeaderText="UPDATE" ShowEditButton="True" ShowHeader="True" />
<asp:CommandField HeaderText="DELETE" ShowDeleteButton="True" ShowHeader="True" />
<asp:BoundField HeaderText="DID" DataField="DID" ReadOnly="true" />
<asp:TemplateField HeaderText="DNAME">
<ItemTemplate>
<asp:Label ID="lb" runat="server" Text='<%#Eval("dname") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddl1" runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView></td></tr>
<tr><td> </td><td><asp:Button ID="btn1" runat="server" Text="Save" Width="80"
onclick="btn1_Click" /></td></tr>
<tr><td> </td><td>
<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="false"
onselectedindexchanging="gv1_SelectedIndexChanging">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<table>
<tr><td>SELECT</td><td>EID</td><td>NAME</td></tr>
</HeaderTemplate>
<ItemTemplate>
<tr><td><asp:LinkButton ID="lbtn" runat="server" Font-Underline="false" Text="+" CommandName="select" CommandArgument='<%#Eval("id") %>'></asp:LinkButton></td><td><%#Eval("id") %></td><td><%#Eval("name") %></td></tr>
<tr><td colspan="3">
<asp:GridView ID="gv2" runat="server" Width="100%" Visible="false"></asp:GridView>
</td></tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td></tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
c# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TestModel;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
#region
TestEntities te = new TestEntities();
DataTable dt = new DataTable();
SqlConnection cn;
SqlCommand cm;
SqlTransaction st;
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<DEPT1> p = new List<DEPT1>();
DEPT1 o = new DEPT1();
o.DID = 0;
o.DNAME = "Select";
p.Add(o);
ddl.DataSource = p.Union(te.DEPT1);
ddl.DataTextField = "dname";
ddl.DataValueField = "did";
ddl.DataBind();
fill();
ViewState["i"] = 0;
}
}
protected void btn_Click(object sender, EventArgs e)
{
dt.Columns.Add("DID", typeof(string));
dt.Columns.Add("DNAME", typeof(string));
DataRow dr;
dr = dt.NewRow();
dr[0] = ddl.SelectedValue.ToString();
dr[1] = ddl.SelectedItem.Text;
dt.Rows.Add(dr);
foreach (GridViewRow gvr in gv.Rows)
{
dr = dt.NewRow();
dr[0] = gvr.Cells[2].Text;
dr[1] = ((Label)gvr.Cells[3].FindControl("lb")).Text;
dt.Rows.Add(dr);
}
gv.DataSource = dt;
gv.DataBind();
ViewState["dt"] = dt;
}
protected void gv_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gv.EditIndex = -1;
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
}
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
List<DEPT1> p = new List<DEPT1>();
DEPT1 o = new DEPT1();
o.DID = 0;
o.DNAME = "Select";
p.Add(o);
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataSource = p.Union(te.DEPT1);
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataTextField = "dname";
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataValueField = "did";
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataBind();
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).SelectedValue = Convert.ToInt32(gv.DataKeys[e.NewEditIndex].Value).ToString();
}
protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
((DataTable)ViewState["dt"]).Rows[e.RowIndex][0] = ((DropDownList)gv.Rows[e.RowIndex].Cells[3].FindControl("ddl1")).SelectedValue;
((DataTable)ViewState["dt"]).Rows[e.RowIndex][1] = ((DropDownList)gv.Rows[e.RowIndex].Cells[3].FindControl("ddl1")).SelectedItem.Text;
ViewState["dt"] = ((DataTable)ViewState["dt"]);
gv.EditIndex = -1;
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
}
protected void gv_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
((DataTable)ViewState["dt"]).Rows.RemoveAt(e.RowIndex);
ViewState["dt"] = ((DataTable)ViewState["dt"]);
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
}
void fill()
{
gv1.DataSource = te.EMPs.ToList();
gv1.DataBind();
}
protected void btn1_Click(object sender, EventArgs e)
{
try
{
cn = new SqlConnection("server=SWASH-DBS\\SWASHSQLINT;database=test;uid=ken;pwd=kc@2011");
cn.Open();
st = cn.BeginTransaction();
cm = new SqlCommand("insert into emp values(" + tb.Text + ",'" + tb1.Text + "')", cn);
cm.Transaction = st;
cm.ExecuteNonQuery();
for (int i = 0; i < gv.Rows.Count; i++)
{
cm = new SqlCommand("insert into empdetails(eid,did) values(" + tb.Text + "," + gv.Rows[i].Cells[2].Text + ")", cn);
cm.Transaction = st;
cm.ExecuteNonQuery();
}
st.Commit();
ScriptManager.RegisterStartupScript(this, GetType(), "x", "alert('One record saved.')", true);
fill();
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, GetType(), "x", "alert('" + ex.Message + "')", true); ;
st.Rollback();
}
}
protected void gv1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
if (Convert.ToInt32(ViewState["i"]) == 0)
{
int j = 0;
j = Convert.ToInt32(((LinkButton)gv1.Rows[e.NewSelectedIndex].FindControl("lbtn")).CommandArgument);
var m = (from x in te.EMPDETAILS
join y in te.DEPT1
on x.DID equals y.DID
where x.EID == j
select new { y.DNAME }).ToList();
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).Visible = true;
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).DataSource = m;
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).DataBind();
((LinkButton)gv1.Rows[e.NewSelectedIndex].FindControl("lbtn")).Text = "-";
ViewState["i"] = 1;
}
else
{
((LinkButton)gv1.Rows[e.NewSelectedIndex].FindControl("lbtn")).Text = "+";
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).Visible = false;
ViewState["i"] = 0;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Transaction="Supported" %>
<!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></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>
<div>
<asp:UpdatePanel ID="up" runat="server">
<ContentTemplate>
<table align="center">
<tr><td>EID</td><td><asp:TextBox ID="tb" runat="server"></asp:TextBox></td></tr>
<tr><td>NAME</td><td><asp:TextBox ID="tb1" runat="server"></asp:TextBox></td></tr>
<tr><td>DEPARTMENT NAME</td><td><asp:DropDownList ID="ddl" runat="server"></asp:DropDownList> <asp:Button
ID="btn" runat="server" Text="Add More" onclick="btn_Click" /></td></tr>
<tr><td> </td><td><asp:GridView ID="gv" runat="server" DataKeyNames="did"
AutoGenerateColumns="false" onrowcancelingedit="gv_RowCancelingEdit"
onrowdeleting="gv_RowDeleting" onrowediting="gv_RowEditing"
onrowupdating="gv_RowUpdating" >
<Columns>
<asp:CommandField HeaderText="UPDATE" ShowEditButton="True" ShowHeader="True" />
<asp:CommandField HeaderText="DELETE" ShowDeleteButton="True" ShowHeader="True" />
<asp:BoundField HeaderText="DID" DataField="DID" ReadOnly="true" />
<asp:TemplateField HeaderText="DNAME">
<ItemTemplate>
<asp:Label ID="lb" runat="server" Text='<%#Eval("dname") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddl1" runat="server"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView></td></tr>
<tr><td> </td><td><asp:Button ID="btn1" runat="server" Text="Save" Width="80"
onclick="btn1_Click" /></td></tr>
<tr><td> </td><td>
<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="false"
onselectedindexchanging="gv1_SelectedIndexChanging">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<table>
<tr><td>SELECT</td><td>EID</td><td>NAME</td></tr>
</HeaderTemplate>
<ItemTemplate>
<tr><td><asp:LinkButton ID="lbtn" runat="server" Font-Underline="false" Text="+" CommandName="select" CommandArgument='<%#Eval("id") %>'></asp:LinkButton></td><td><%#Eval("id") %></td><td><%#Eval("name") %></td></tr>
<tr><td colspan="3">
<asp:GridView ID="gv2" runat="server" Width="100%" Visible="false"></asp:GridView>
</td></tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td></tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
c# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TestModel;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
#region
TestEntities te = new TestEntities();
DataTable dt = new DataTable();
SqlConnection cn;
SqlCommand cm;
SqlTransaction st;
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<DEPT1> p = new List<DEPT1>();
DEPT1 o = new DEPT1();
o.DID = 0;
o.DNAME = "Select";
p.Add(o);
ddl.DataSource = p.Union(te.DEPT1);
ddl.DataTextField = "dname";
ddl.DataValueField = "did";
ddl.DataBind();
fill();
ViewState["i"] = 0;
}
}
protected void btn_Click(object sender, EventArgs e)
{
dt.Columns.Add("DID", typeof(string));
dt.Columns.Add("DNAME", typeof(string));
DataRow dr;
dr = dt.NewRow();
dr[0] = ddl.SelectedValue.ToString();
dr[1] = ddl.SelectedItem.Text;
dt.Rows.Add(dr);
foreach (GridViewRow gvr in gv.Rows)
{
dr = dt.NewRow();
dr[0] = gvr.Cells[2].Text;
dr[1] = ((Label)gvr.Cells[3].FindControl("lb")).Text;
dt.Rows.Add(dr);
}
gv.DataSource = dt;
gv.DataBind();
ViewState["dt"] = dt;
}
protected void gv_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gv.EditIndex = -1;
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
}
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
List<DEPT1> p = new List<DEPT1>();
DEPT1 o = new DEPT1();
o.DID = 0;
o.DNAME = "Select";
p.Add(o);
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataSource = p.Union(te.DEPT1);
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataTextField = "dname";
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataValueField = "did";
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).DataBind();
((DropDownList)gv.Rows[e.NewEditIndex].Cells[3].FindControl("ddl1")).SelectedValue = Convert.ToInt32(gv.DataKeys[e.NewEditIndex].Value).ToString();
}
protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
((DataTable)ViewState["dt"]).Rows[e.RowIndex][0] = ((DropDownList)gv.Rows[e.RowIndex].Cells[3].FindControl("ddl1")).SelectedValue;
((DataTable)ViewState["dt"]).Rows[e.RowIndex][1] = ((DropDownList)gv.Rows[e.RowIndex].Cells[3].FindControl("ddl1")).SelectedItem.Text;
ViewState["dt"] = ((DataTable)ViewState["dt"]);
gv.EditIndex = -1;
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
}
protected void gv_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
((DataTable)ViewState["dt"]).Rows.RemoveAt(e.RowIndex);
ViewState["dt"] = ((DataTable)ViewState["dt"]);
gv.DataSource = (DataTable)ViewState["dt"];
gv.DataBind();
}
void fill()
{
gv1.DataSource = te.EMPs.ToList();
gv1.DataBind();
}
protected void btn1_Click(object sender, EventArgs e)
{
try
{
cn = new SqlConnection("server=SWASH-DBS\\SWASHSQLINT;database=test;uid=ken;pwd=kc@2011");
cn.Open();
st = cn.BeginTransaction();
cm = new SqlCommand("insert into emp values(" + tb.Text + ",'" + tb1.Text + "')", cn);
cm.Transaction = st;
cm.ExecuteNonQuery();
for (int i = 0; i < gv.Rows.Count; i++)
{
cm = new SqlCommand("insert into empdetails(eid,did) values(" + tb.Text + "," + gv.Rows[i].Cells[2].Text + ")", cn);
cm.Transaction = st;
cm.ExecuteNonQuery();
}
st.Commit();
ScriptManager.RegisterStartupScript(this, GetType(), "x", "alert('One record saved.')", true);
fill();
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, GetType(), "x", "alert('" + ex.Message + "')", true); ;
st.Rollback();
}
}
protected void gv1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
if (Convert.ToInt32(ViewState["i"]) == 0)
{
int j = 0;
j = Convert.ToInt32(((LinkButton)gv1.Rows[e.NewSelectedIndex].FindControl("lbtn")).CommandArgument);
var m = (from x in te.EMPDETAILS
join y in te.DEPT1
on x.DID equals y.DID
where x.EID == j
select new { y.DNAME }).ToList();
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).Visible = true;
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).DataSource = m;
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).DataBind();
((LinkButton)gv1.Rows[e.NewSelectedIndex].FindControl("lbtn")).Text = "-";
ViewState["i"] = 1;
}
else
{
((LinkButton)gv1.Rows[e.NewSelectedIndex].FindControl("lbtn")).Text = "+";
((GridView)gv1.Rows[e.NewSelectedIndex].FindControl("gv2")).Visible = false;
ViewState["i"] = 0;
}
}
}
No comments:
Post a Comment