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

80酷酷网    80kuku.com

  asp.net|datagrid|按钮|创建|模板|数据 

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)
  {
   // 在此处放置用户代码以初始化页面
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);
   this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  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();
   }

  }
 }
}


分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: