首页 > 编程 > .NET > 正文

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

2024-07-10 12:55:23
字体:
来源:转载
供稿:网友

 

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 [email protected]",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();
   }

  }
 }
}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表