在ASP.Net中可编辑的未绑定Gridview [英] Editable Unbound Gridview in ASP.Net

查看:82
本文介绍了在ASP.Net中可编辑的未绑定Gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好团队,

我想编辑Unbound GridView-它将把更改保存到我的数据库中.

我有下面的代码,它们工作得很好.

但是问题出在BU_CodeDM_CodeEmp_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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆