GridView代码方式新增、修改、删除(新增弹出窗体,完成后关闭并刷新主页面)

本人原创,转载请注明地址 。

这篇文章主要是用代码方式使用GridView进行新增、修改、删除,新增是用弹出新窗体的方式,完成后关闭新增窗体并且刷新页面和GridView。
代码节选自本人的工程,具体的数据库和表可以自己建,方法参照下面的方法。

先在类里面定义一些参数和连接字符串:

     string  sConnString  =   " server=数据库IP地址;database='数据库名';uid='用户名';pwd='密码' " ;
    SqlConnection Conn 
=   new  SqlConnection();
    
public   static   string  sAddSql;
    
public   string  productTime;
    
public   string  productLineId;
    
public   string  DataType;
    
public   string  productNameId;
    
public   string  Side;
    
public   string  productIn;
    
public   string  productOut;
    
public   string  productEye;
    
public   string  productNum;
    
public   string  StartTime;
    
public   string  TimeSectID;

然后写页面事件:

     protected   void  Page_Load( object  sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            Bind(sAddSql);
//绑定gridview的方法
        }

    }

接着是绑定方法和弹出窗体方法:

     public   void  Alert( string  msg) // 弹出提示框
     {
        
this.ClientScript.RegisterStartupScript(this.GetType(), "alert""

language
='javascript'>alert('" + msg + "');script>");
    }

    
public   void  Bind( string  sSql) // 绑定事件
     {
        Conn 
= new SqlConnection(sConnString);
        SqlDataAdapter adapter 
= new SqlDataAdapter("select id,productTime as 生产日期,productLineId as 

生产线ID,DataType 
as 数据类型,productNameId as 产品名称ID,Side as 面次,productIn as 进数," +
            "productOut as 出数,productEye as 人工,productNum as 合计,TimeSectID as 班次 from product" 

+ sSql, Conn);
        Conn.Open();
        DataSet ds 
= new DataSet();
        adapter.Fill(ds);
        GridView1.DataSource 
= ds.Tables[0].DefaultView;
        GridView1.DataBind();
        Conn.Close();
    }


GridView的编辑和取消编辑事件:

     protected   void  GridView1_RowEditing( object  sender, GridViewEditEventArgs e)
    
{
        GridView1.EditIndex 
= e.NewEditIndex;
        GridView1.Rows[e.NewEditIndex].Cells[
4].Enabled = false;
        GridView1.Rows[e.NewEditIndex].Cells[
13].Enabled = false;
        Bind(sAddSql);
    }

    
protected   void  GridView1_RowCancelingEdit( object  sender, GridViewCancelEditEventArgs e)
    
{
        GridView1.EditIndex 
= -1;
        Bind(sAddSql);
        
return;
    }

GridView修改和删除方法:

     protected   void  GridView1_RowUpdating( object  sender, GridViewUpdateEventArgs e)
    
{
        
try
        
{
            GridViewRow row 
= GridView1.Rows[GridView1.EditIndex];
            
string id = ((TextBox)(row.Controls[4].Controls[0])).Text;
            
//string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); 
            string productTime = ((TextBox)(row.Controls[5].Controls[0])).Text;
            
string productLineId = ((TextBox)(row.Controls[6].Controls[0])).Text;
            
string DataType = ((TextBox)(row.Controls[7].Controls[0])).Text;
            
string productNameId = ((TextBox)(row.Controls[8].Controls[0])).Text;
            
string Side = ((TextBox)(row.Controls[9].Controls[0])).Text;
            
string productIn = ((TextBox)(row.Controls[10].Controls[0])).Text;
            
string productOut = ((TextBox)(row.Controls[11].Controls[0])).Text;
            
string productEye = ((TextBox)(row.Controls[12].Controls[0])).Text;
            
string productNum = ((TextBox)(row.Controls[13].Controls[0])).Text;
            
string TimeSectID = ((TextBox)(row.Controls[14].Controls[0])).Text;

            
string sql = "update product set productTime='" + productTime +
                
"',productLineId=" + int.Parse(productLineId) + ",DataType=" + int.Parse(DataType) +
                
",productNameId=" + int.Parse(productNameId) + ",Side=" + int.Parse(Side) +
                
",productIn=" + int.Parse(productIn) + "," +
                
"productOut=" + int.Parse(productOut) + ",productEye=" + int.Parse(productEye) +
                
",TimeSectID=" + int.Parse(TimeSectID) + " where id=" + int.Parse(id);
            Conn 
= new SqlConnection(sConnString);
            SqlCommand Comm 
= new SqlCommand(sql, Conn);
            Conn.Open();
            Comm.ExecuteNonQuery();
            e.Cancel 
= true;
            GridView1.EditIndex 
= -1;
            Bind(sAddSql);
            Conn.Close();
        }

        
catch (Exception ex)
        
{
            GridView1.EditIndex 
= -1;
            Alert(ex.Message);
        }

        
finally
        
{
            Conn.Dispose();
        }

    }

    
protected   void  GridView1_RowDeleting( object  sender, GridViewDeleteEventArgs e)
    
{
        
string id = GridView1.Rows[e.RowIndex].Cells[4].Text;
        
string sql = "delete from product where id=" + int.Parse(id);
        Conn 
= new SqlConnection(sConnString);
        SqlCommand Comm 
= new SqlCommand(sql, Conn);
        Conn.Open();
        Comm.ExecuteNonQuery();
        Bind(sAddSql);
        Conn.Close();
    }


鼠标移动到GridView任意行变色:

     protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
    
{
        
int i;
        
for (i = 0; i <= GridView1.Rows.Count; i++)
        
{
            
//首先判断是否是数据行
            if (e.Row.RowType == DataControlRowType.DataRow)
            
{
                
//bind style
                e.Row.Attributes.Add("onmouseover"

"oldcolor=this.style.backgroundColor;this.style.backgroundColor="#f3ed86";this.style.cursor='hand';");
                e.Row.Attributes.Add(
"onmouseout"

"this.style.backgroundColor=oldcolor;this.style.cursor='';");
                
//设置悬浮鼠标指针形状为"小手"
                e.Row.Attributes["style"= "Cursor:hand";
                
//单击行的任意列会自动选中此行,编辑时出现错误,需要有选择按钮
                
//e.Row.Attributes.Add("onclick", "__doPostBack('GridView1','Select$" + e.Row.RowIndex 

+ "')");
            }

        }

    }


新增按钮的事件,弹出个固定大小的窗体:

     protected   void  Button1_Click( object  sender, EventArgs e)
    
{
        Response.Write(
"");
        Response.Write

(
"");
        Response.Write(
"");
    }


上面的方法基本实现了GridView代码方式的新增、修改、删除,里面还包含了弹出提示窗口、鼠标移动到GridView行

变色、关闭新窗体刷新打开页面的等一些技巧。
 

你可能感兴趣的:(ASP.NET)