在ASP.Net中可编辑的未绑定Gridview [英] Editable Unbound Gridview in ASP.Net
本文介绍了在ASP.Net中可编辑的未绑定Gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好团队,
我想编辑Unbound GridView-它将把更改保存到我的数据库中.
我有下面的代码,它们工作得很好.
但是问题出在BU_Code
,DM_Code
和Emp_Role
上,我想在UnBound GridView中使用DropDownList.
请帮助我如何使用UnBound GridView做到这一点.
private System.Data.DataTable Populate_GridView() { string qry = "SELECT tbl_Emp_Master.Emp_ID, tbl_Emp_Master.Emp_Name, tbl_Emp_Master.Login_ID, tbl_Emp_Master.BU_Code, tbl_Emp_Master.DM_Code, " + " tbl_Emp_Master.Emp_Role, tbl_Emp_Role.[Role_Desc], tbl_BU.BU_Name, tbl_DM.DM_Name " + " FROM tbl_DM INNER JOIN " + " tbl_BU ON tbl_DM.BU_Code = tbl_BU.BU_Code INNER JOIN " + " tbl_Emp_Master INNER JOIN " + " tbl_Emp_Role ON tbl_Emp_Master.Emp_Role = tbl_Emp_Role.Emp_Role ON tbl_DM.DM_Code = tbl_Emp_Master.DM_Code AND " + " tbl_BU.BU_Code = tbl_Emp_Master.BU_Code"; SqlCon.Open(); SqlDataAdapter adp = new SqlDataAdapter(qry, SqlCon); System.Data.DataTable dt = new System.Data.DataTable(); System.Data.DataRow dr = dt.NewRow(); dt.Rows.InsertAt(dr, 0); adp.Fill(dt); SqlCon.Close(); return dt; } private void View_Table() { System.Data.DataTable dt = Populate_GridView(); GridView1.DataSource = dt; GridView1.EditIndex = -1; GridView1.DataBind(); ((LinkButton)GridView1.Rows[0].Cells[0].Controls[0]).Text = "Insert"; } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { SqlCommand cmd = new SqlCommand(); cmd.CommandText = "UPDATE tbl_Emp_Master SET Emp_ID= ''" + e.NewValues[0].ToString() + "'', Emp_Name =''" + e.NewValues[1].ToString() + "'', Login_ID=''" + e.NewValues[2].ToString() + "'', BU_Code=''" + e.NewValues[3].ToString() + "'', DM_Code=''" + e.NewValues[4].ToString() + "'', Emp_Role=''" + e.NewValues[5].ToString() + "'' " + "WHERE Emp_ID= ''" + e.NewValues[0].ToString() + "''"; cmd.Connection = SqlCon; SqlCon.Open(); cmd.ExecuteNonQuery(); SqlCon.Close(); View_Table(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { System.Data.DataTable dt = Populate_GridView(); GridView1.DataSource = dt; GridView1.EditIndex = e.NewEditIndex; //Enable Edit Mode for Selected Row GridView1.DataBind(); ((LinkButton)GridView1.Rows[0].Cells[0].Controls[0]).Text = "Insert"; } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { View_Table(); }
解决方案
您可以通过使用Gridview控件中的模板来实现,在此处可以看到在detials视图中使用组合框的示例
http://blogs.msdn.com/robburke/archive/2005/04/01/404727.aspx
http://www.floresense.com/resc_center/?art=1320 如何在GridView中创建自定义绑定字段
http://msdn.microsoft.com/en-us/library/ms228046.aspx
>
Hello Team,
I want to Edit Unbound GridView - which will altimatly save changes to my DataBase.
I have below code which is working perfectly fine.
But Problem is for BU_Code
,DM_Code
and Emp_Role
I want DropDownList in my UnBound GridView.
Please Help how I can do this with UnBound GridView.
private System.Data.DataTable Populate_GridView() { string qry = "SELECT tbl_Emp_Master.Emp_ID, tbl_Emp_Master.Emp_Name, tbl_Emp_Master.Login_ID, tbl_Emp_Master.BU_Code, tbl_Emp_Master.DM_Code, " + " tbl_Emp_Master.Emp_Role, tbl_Emp_Role.[Role_Desc], tbl_BU.BU_Name, tbl_DM.DM_Name " + " FROM tbl_DM INNER JOIN " + " tbl_BU ON tbl_DM.BU_Code = tbl_BU.BU_Code INNER JOIN " + " tbl_Emp_Master INNER JOIN " + " tbl_Emp_Role ON tbl_Emp_Master.Emp_Role = tbl_Emp_Role.Emp_Role ON tbl_DM.DM_Code = tbl_Emp_Master.DM_Code AND " + " tbl_BU.BU_Code = tbl_Emp_Master.BU_Code"; SqlCon.Open(); SqlDataAdapter adp = new SqlDataAdapter(qry, SqlCon); System.Data.DataTable dt = new System.Data.DataTable(); System.Data.DataRow dr = dt.NewRow(); dt.Rows.InsertAt(dr, 0); adp.Fill(dt); SqlCon.Close(); return dt; } private void View_Table() { System.Data.DataTable dt = Populate_GridView(); GridView1.DataSource = dt; GridView1.EditIndex = -1; GridView1.DataBind(); ((LinkButton)GridView1.Rows[0].Cells[0].Controls[0]).Text = "Insert"; } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { SqlCommand cmd = new SqlCommand(); cmd.CommandText = "UPDATE tbl_Emp_Master SET Emp_ID= ''" + e.NewValues[0].ToString() + "'', Emp_Name =''" + e.NewValues[1].ToString() + "'', Login_ID=''" + e.NewValues[2].ToString() + "'', BU_Code=''" + e.NewValues[3].ToString() + "'', DM_Code=''" + e.NewValues[4].ToString() + "'', Emp_Role=''" + e.NewValues[5].ToString() + "'' " + "WHERE Emp_ID= ''" + e.NewValues[0].ToString() + "''"; cmd.Connection = SqlCon; SqlCon.Open(); cmd.ExecuteNonQuery(); SqlCon.Close(); View_Table(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { System.Data.DataTable dt = Populate_GridView(); GridView1.DataSource = dt; GridView1.EditIndex = e.NewEditIndex; //Enable Edit Mode for Selected Row GridView1.DataBind(); ((LinkButton)GridView1.Rows[0].Cells[0].Controls[0]).Text = "Insert"; } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { View_Table(); }
解决方案
You could achieve it by using the templates within the Gridview control, an example of using a combobox in the detials view can been seen here
http://blogs.msdn.com/robburke/archive/2005/04/01/404727.aspx
http://www.floresense.com/resc_center/?art=1320
How to create custom bound fields in GridView
http://msdn.microsoft.com/en-us/library/ms228046.aspx
这篇关于在ASP.Net中可编辑的未绑定Gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文