手工创建datagrid数据列/模板列/按钮事件+简单的数据操作类(asp.net)

 
1 )创建datagrid数据列 / 模板列 / 按钮的操作类:

using  System; 
using  System.Collections; 
using  System.ComponentModel; 
using  System.Data; 
using  System.Data.SqlClient; 
using  System.Drawing; 
using  System.Web; 
using  System.Web.SessionState; 
using  System.Web.UI; 
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls; 

namespace  Webtest
{
 
/// <summary>
 
/// DataGridColumn 的摘要说明。
 
/// </summary>

 public class DataGridCols
 
{
  
public void DataGridColumn()
  
{
   
//
   
// TODO: 在此处添加构造函数逻辑
   
//
  }


  
public static void CreateCols(System.Web.UI.WebControls.DataGrid DataGrid1,string dataField,string headerText,int i)
  
{
   BoundColumn cm
=new BoundColumn();
   cm.DataField
=dataField;
   cm.HeaderText
=headerText;
   cm.HeaderStyle.Width
=i;
   DataGrid1.Columns.Add(cm); 
  }

  
public static void CreateButton(System.Web.UI.WebControls.DataGrid DataGrid1,string commandName,string strText)
  
{
   ButtonColumn bc
=new ButtonColumn(); 
   bc.ButtonType
=ButtonColumnType.PushButton; 
   bc.CommandName
=commandName; 
   bc.HeaderText
="操作";
   bc.Text
=strText; 
   DataGrid1.Columns.Add(bc);
  }


  
public static void CreateTemplateCol(System.Web.UI.WebControls.DataGrid DataGrid1,string ID,string headerText)
  
{
   TemplateColumn tm
=new TemplateColumn(); 
   tm.ItemTemplate
=new DDListCol(ID); 
   tm.HeaderText
=headerText; 
   DataGrid1.Columns.Add(tm); 
  }

 }

}



2 )简单的数据库操作类

using  System;
using  System.Data;
using  System.Data.SqlClient;
namespace  Webtest
{
 
/// <summary>
 
/// SqlAccess 的摘要说明。
 
/// </summary>

 public class SqlAccess
 
{

//  string strConn="server=;user id=sa;password=;database=clothing";
//  DataSet ds;
//  SqlDataAdapter da;
  public SqlAccess()
  
{
   
//
   
// TODO: 在此处添加构造函数逻辑
   
//
  }

  
public static void fillDataSet(string strConnection,string strSql,DataSet ds,string tableName)
  
{
   
if (strConnection==null || strConnection.Length==0)
   
{
   
throw new ArgumentNullException( "strConnection" );
   }

   
if (strSql==null || strSql.Length==0)
   
{
    
throw new ArgumentNullException( "strSql" );
   }

   
if (ds==null)
   
{
    
throw new ArgumentNullException( "DataSet" );
   }

   
if (tableName==null || tableName.Length==0)
   
{
    
throw new ArgumentNullException( "tableName" );
   }

   
using(SqlConnection conn=new SqlConnection(strConnection))
   
{
    conn.Open();
    SqlDataAdapter da 
=new SqlDataAdapter(strSql,conn);
    da.Fill(ds,tableName);
    conn.Close();
   }

  }

  
public static void fillDataSet(SqlConnection conn,string strSql,DataSet ds,string tableName)
  
{
   
if (conn==null)
   
{
    
throw new ArgumentNullException( "SqlConnection" );
   }

   
if (strSql==null || strSql.Length==0)
   
{
    
throw new ArgumentNullException( "strSql" );
   }

   
if (ds==null)
   
{
    
throw new ArgumentNullException( "DataSet" );
   }

   
if (tableName==null || tableName.Length==0)
   
{
    
throw new ArgumentNullException( "tableName" );
   }

   
using(SqlDataAdapter da =new SqlDataAdapter(strSql,conn))
   
{
    da.Fill(ds,tableName);
    conn.Close();
   }

  }


  
public static DataSet getDataSet(string strConnection,string strSql)
  
{
   
if (strConnection==null || strConnection.Length==0)
   
{
    
throw new ArgumentNullException( "strConnection" );
   }

   
if (strSql==null || strSql.Length==0)
   
{
    
throw new ArgumentNullException( "strSql" );
   }

   
using(SqlConnection conn=new SqlConnection(strConnection))
   
{
    DataSet ds
=new DataSet();
    conn.Open();
    SqlDataAdapter da 
=new SqlDataAdapter(strSql,conn);
    da.Fill(ds);
    conn.Close();
    
return ds;
   }

  }

  
public static DataSet getDataSet(SqlConnection conn,string strSql)
  
{
   
if (conn==null)
   
{
    
throw new ArgumentNullException( "SqlConnection" );
   }

   
if (strSql==null || strSql.Length==0)
   
{
    
throw new ArgumentNullException( "strSql" );
   }

   
using(SqlDataAdapter da =new SqlDataAdapter(strSql,conn))
   
{
    DataSet ds
=new DataSet();
    da.Fill(ds);
    conn.Close();
    
return ds;
   }

  }

  
public static int executeNonQuery(string strConnection,string strSql)
  
{
   
if (strConnection==null || strConnection.Length==0)
   
{
    
throw new ArgumentNullException( "strConnection" );
   }

   
if (strSql==null || strSql.Length==0)
   
{
    
throw new ArgumentNullException( "strSql" );
   }

   
using(SqlConnection conn=new SqlConnection(strConnection))
   
{
    SqlCommand sqlCmd
=new SqlCommand(strSql,conn);
    
int i= sqlCmd.ExecuteNonQuery();
    conn.Close();
    
return i;
   }

  }

  
public static int executeNonQuery(SqlConnection conn,string strSql)
  
{
   
if (conn==null)
   
{
    
throw new ArgumentNullException( "SqlConnection" );
   }

   
if (strSql==null || strSql.Length==0)
   
{
    
throw new ArgumentNullException( "strSql" );
   }

   
using(SqlCommand sqlCmd=new SqlCommand(strSql,conn))
   
{
    
int i=sqlCmd.ExecuteNonQuery();
    conn.Close();
    
return i;
   }

  }

 }

}


3 )创建模板列的类(可以创建n种模板列)

using  System; 
using  System.Collections; 
using  System.ComponentModel; 
using  System.Data; 
using  System.Data.SqlClient; 
using  System.Drawing; 
using  System.Web; 
using  System.Web.SessionState; 
using  System.Web.UI; 

using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls; 


namespace  Webtest
{
 
//DropDownList模板列
 public class DDListCol : ITemplate 
 

  
string ID;
  
public DDListCol(string id)
  
{
   
this.ID=id;
  }

  
public void InstantiateIn(Control container)       
  

   DropDownList dpl 
= new DropDownList(); 
   dpl.ID
=this.ID ; 
   container.Controls.Add(dpl); 

  }
 
 }
 
 
//CheckBox模板列
 public class CheckBoxCol : ITemplate 
 

  
string ID;
  
public CheckBoxCol(string id)
  
{
   
this.ID=id;
  }

  
public void InstantiateIn(Control container)       
  

   CheckBox checkbox 
= new CheckBox(); 
   checkbox.ID
=this.ID ; 
   container.Controls.Add(checkbox); 
  }
 
 }
 
}


4 )实例:创建数据源和创建datagrid数据列

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;
using  System.Data.SqlClient;
namespace  Webtest
{
 
/// <summary>
 
/// WebForm1 的摘要说明。
 
/// </summary>

 public class WebForm1 : System.Web.UI.Page
 
{
  
protected System.Web.UI.WebControls.DataGrid DataGrid1;
  
protected System.Web.UI.WebControls.Button Button1;
 
  
private void Page_Load(object sender, System.EventArgs e)
  
{
   
// 在此处放置用户代码以初始化页面
  }


  
Web 窗体设计器生成的代码

  
private void Button1_Click(object sender, System.EventArgs e)
  
{
   initData();
  }

  
string strconn="server=;user id=sa;password=;database=clothing";
  
private void initData()
  
{
  
   
string strSql="select * from tblProduct";
   DataSet ds
=new DataSet();
   ds
=SqlAccess.getDataSet(this.strconn,strSql);

   
this.DataGrid1.DataSource=ds.Tables[0].DefaultView;
   DataGridCols.CreateCols(
this.DataGrid1,"Pro_ID","叙号",50);
   DataGridCols.CreateCols(
this.DataGrid1,"Pro_Code","编号",50);
   DataGridCols.CreateCols(
this.DataGrid1,"Pro_Name","名称",100);
   DataGridCols.CreateTemplateCol(
this.DataGrid1,"Type","类型");
   DataGridCols.CreateButton(
this.DataGrid1,"del","删除");
   
this.DataGrid1.DataBind();
  }


  
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  
{
   
string strSql="select * from tblProduct_Type";
   DataSet ds
=new DataSet();
   ds
=SqlAccess.getDataSet(this.strconn,strSql);
   
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem) 
   

    DropDownList ddl
=(DropDownList)e.Item.FindControl("Type"); 
    ddl.DataSource
=ds.Tables[0]; 
    ddl.DataTextField
="Type_Name"
    ddl.DataValueField
="Type_ID"
    ddl.DataBind(); 
    ddl.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,
"Type_ID"))).Selected=true
   }
 
  }


  
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  
{
   
if(e.CommandName=="del"
   

    SqlConnection conn
=new SqlConnection(this.strconn); 
    SqlCommand comm
=new SqlCommand("delete tblProduct where Pro_ID=@id",conn); 
    SqlParameter parm1
=new SqlParameter("@id",SqlDbType.Int); 
    parm1.Value
=this.DataGrid1.DataKeys[e.Item.ItemIndex]; 
    comm.Parameters.Add(parm1); 
    conn.Open(); 
    comm.ExecuteNonQuery(); 
    conn.Close(); 
    
this.initData(); 
   }


  }

 }

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值