国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net datagrid實現多層表頭

2024-07-10 12:56:32
字體:
來源:轉載
供稿:網友
注冊會員,創建你的web開發資料庫, 

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;
using system.xml;
using system.text;

namespace winneroa.newrpt
{
 /// <summary>
 /// dayenter 的摘要說明。
 /// </summary>
 public class dayenter : system.web.ui.page
 {
  protected system.web.ui.webcontrols.calendar calendar1;
  protected system.web.ui.webcontrols.button updatebutton;
  protected system.web.ui.webcontrols.datagrid datatable;
  protected system.web.ui.webcontrols.button addlinebutton;
 
  private void page_load(object sender, system.eventargs e)
  {
   if(this.initreaddatapopedom())
   {
    if(!this.ispostback)
    {
     this.calendar1.selecteddate=datetime.today;
     
     
    }
    this.initdata();
   }
   else
   {
    this.response.clear();
    this.response.write("您沒有權限!");
    this.response.end();
    return;
   }
   if(this.initwritedatapopedom())
   {
     
    this.addlinebutton.visible=true;
    this.updatebutton.visible=true;
   }
   else
   {
    this.addlinebutton.visible=false;
    this.updatebutton.visible=false;
   }
   
  }
  
  private bool initwritedatapopedom()
  {
   arraylist depts=new arraylist();
   xmldocument xmldocument=new xmldocument();
   xmlnodereader xmlreader=null;
   try
   {
    
    xmldocument.load(server.mappath("..").tostring()[email protected]"/popedom.xml");
    xmlreader=new xmlnodereader(xmldocument.childnodes[1].childnodes[11]);
    while(xmlreader.read())
    {
     if(xmlreader.nodetype.equals(xmlnodetype.element))
     {
      if(xmlreader.name.tostring().equals("write"))
      {
       while(xmlreader.read())
       {
        if(!xmlreader.name.equals("user"))
        {
         break;
        }
        else
        {
         depts.add (xmlreader.readstring());
        }
       }
      }
     
     }
    }
   }
   catch(exception err)
   {
    response.write(err.tostring());
   }
   finally
   {
    xmlreader.close();
   }
   string deptname=request.cookies["oabusyusername"].value.tostring();
   encoding e=encoding.getencoding("gb2312");
   deptname=httputility.urldecode(deptname,e);
   if(depts.contains(deptname))
   {
    return true;
   }
   else
   {
    return false;
   }
  }
  private bool initreaddatapopedom()
  {
   arraylist depts=new arraylist();
   xmldocument xmldocument=new xmldocument();
   xmlnodereader xmlreader=null;
   try
   {
    
    xmldocument.load(server.mappath("..").tostring()[email protected]"/popedom.xml");
    xmlreader=new xmlnodereader(xmldocument.childnodes[1].childnodes[11]);
    while(xmlreader.read())
    {
     if(xmlreader.nodetype.equals(xmlnodetype.element))
     {
      if(xmlreader.name.tostring().equals("read"))
      {
       while(xmlreader.read())
       {
        if(!xmlreader.name.equals("user"))
        {
         break;
        }
        else
        {
         depts.add (xmlreader.readstring());
        }
       }
      }
     
     }
    }
   }
   catch(exception err)
   {
    response.write(err.tostring());
   }
   finally
   {
    xmlreader.close();
   }
   string deptname=request.cookies["oabusyusername"].value.tostring();
   encoding e=encoding.getencoding("gb2312");
   deptname=httputility.urldecode(deptname,e);
   if(depts.contains(deptname))
   {
    return true;
   }
   else
   {
    return false;
   }
  }

  private void initdata()
  {
   if(session["dataset"]==null)
   {
    string sqlcmd="select  id , lanewayname as 巷道名稱, constructunit as 施工單位,designlength as 設計長度, designdm as 設計斷面, mplane as 本月計劃, dplaneenter as 本日,dfactenter as 本日1, mtotal as 本月累計, lithology as 巖性, angle as 角度,       mplaneenter as 本月1, mfactenter as 本月2, hair as 成巷1, moulding as 成巷2, memo as 備注 from dayenter where [date]='"+this.calendar1.selecteddate.toshortdatestring()+"'";
    string connstring="workstation id=server;packet size=4096;user id=sa;data source='.';persist security info=true;initial catalog=winneroa;password=pxh2003";
    sqlconnection conn=new sqlconnection(connstring);
    try
    {
     conn.open();
    }
    catch(exception err)
    {
     response.write(err.tostring());
     return;
    }
    sqldataadapter sda=new sqldataadapter(sqlcmd,conn);
    dataset ds=new dataset();
  
    try
    {
     sda.fill(ds);
     
     this.datatable.datasource=ds.tables[0].defaultview;
   
     this.datatable.databind();
     this.session["dataset"]=ds;
    }
    catch(exception err)
    {
     response.write(err.tostring());

    }
    finally
    {
    
     conn.close();
    }
   }
   else
   {
    dataset ds=(dataset)(session["dataset"]);
    
    //datarow newrow=ds.tables[0].newrow();
    //ds.tables[0].rows.add(newrow);
    this.datatable.datasource=ds;
    this.datatable.databind();
    session["dataset"]=ds;
   }
   
   
  }
  private void addline()
  {
   if(session["dataset"]!=null)
   {
    dataset ds=(dataset)(session["dataset"]);
    
    datarow newrow=ds.tables[0].newrow();
    ds.tables[0].rows.add(newrow);
    this.datatable.datasource=ds;
    this.datatable.databind();
    session["dataset"]=ds;
   }
  }

  private void deldata()
  {
   string sqlcmd="delete from dayenter where [date]='"+this.calendar1.selecteddate.toshortdatestring()+"'";
   string connstring="workstation id=server;packet size=4096;user id=sa;data source='.';persist security info=true;initial catalog=winneroa;password=pxh2003";
   sqlconnection conn=new sqlconnection(connstring);
   try
   {
    conn.open();
   }
   catch(exception err)
   {
    response.write(err.tostring());
    return;
   }
   sqlcommand cmd=new sqlcommand(sqlcmd,conn);
   try
   {
    cmd.executenonquery();
   }
   catch(exception err)
   {
    response.write(err.tostring());
   }
   finally
   {
    conn.close();
   }
  }

  private void savedata()
  {
   this.deldata();
   string connstring="workstation id=server;packet size=4096;user id=sa;data source='.';persist security info=true;initial catalog=winneroa;password=pxh2003";
   sqlconnection conn=new sqlconnection(connstring);
   foreach(datagriditem e in this.datatable.items)
   {
    if(e.itemtype!=listitemtype.header && e.itemtype!=listitemtype.footer)
    {
     string sqlcmd="insert into dayenter(lanewayname,constructunit,designlength,designdm,mplane,dplaneenter,dfactenter,mtotal,lithology,angle,mplaneenter,mfactenter,hair,moulding,memo,[date]) values(";
     
     
     for(int j=2;j<e.cells.count ;j++)
     {
      sqlcmd+="'"+((textbox)e.cells[j].controls[0]).text +"',";
      
     }
     sqlcmd+="'"+this.calendar1.selecteddate.toshortdatestring()+"')";
     try
     {
      conn.open();
     }
     catch(exception err)
     {
      response.write(err.tostring());
      return;
     }
     sqlcommand cmd=new sqlcommand(sqlcmd,conn);
     try
     {
      cmd.executenonquery();
      
     }
     catch(exception err)
     {
      response.write(err.tostring()+sqlcmd);
     }
     finally
     {
      conn.close();
     }
    }
   }
   this.session["dataset"]=null;
   this.initdata();
  }
  #region web 窗體設計器生成的代碼
  override protected void oninit(eventargs e)
  {
   //
   // codegen: 該調用是 asp.net web 窗體設計器所必需的。
   //
   initializecomponent();
   base.oninit(e);
  }
  
  /// <summary>
  /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內容。
  /// </summary>
  private void initializecomponent()
  {   
   this.addlinebutton.click += new system.eventhandler(this.addlinebutton_click);
   this.updatebutton.click += new system.eventhandler(this.updatebutton_click);
   this.calendar1.selectionchanged += new system.eventhandler(this.calendar1_selectionchanged);
   this.datatable.itemcreated += new system.web.ui.webcontrols.datagriditemeventhandler(this.datatable_itemcreated);
   this.datatable.itemdatabound += new system.web.ui.webcontrols.datagriditemeventhandler(this.datatable_itemdatabound);
   this.load += new system.eventhandler(this.page_load);

  }
  #endregion

  private void addlinebutton_click(object sender, system.eventargs e)
  {
   this.savedata();
   this.addline();
   
  }

  private void updatebutton_click(object sender, system.eventargs e)
  {
   this.savedata();
  }

  private void datatable_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
  {
   
   
   e.item.cells[1].visible=false;
   if(e.item.itemtype!=listitemtype.header && e.item.itemtype!=listitemtype.footer)
   {
    button delbutton=new button();
    delbutton.text="刪除";
    delbutton.id=e.item.cells[1].text+"d";
    delbutton.click+=new eventhandler(delbutton_click);
    e.item.cells[0].controls.add(delbutton);
    for(int i=2;i<e.item.cells.count;i++)
    {
     textbox textbox=new textbox();
     if(!e.item.cells[i].text.equals("&nbsp;"))
      textbox.text=e.item.cells[i].text;
     textbox.width=new unit("88px");
     
     if(!this.initwritedatapopedom())
     {
      textbox.readonly=true;
      e.item.cells[0].visible=false;
     }
     e.item.cells[i].controls.add(textbox);
    }
   }
  }

  private void datatable_itemcreated(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
  {
   
   if (e.item.itemtype == listitemtype.header)
   {

    e.item.visible=false;
    table tb = (table)datatable.controls[0];
    datagriditem dgi1=new datagriditem(0,0,listitemtype.header);
    datagriditem dgi2 = new  datagriditem(0,0,listitemtype.header);
    tablecell[] cell1=new tablecell[14];
    for(int i=0;i<cell1.length;i++)
    {
     cell1[i]=new tablecell();
     if(i==7 || i==11|| i==12)
     {
      cell1[i].columnspan=2;
      cell1[i].horizontalalign=horizontalalign.center;
     }
     else
     {
      cell1[i].rowspan=2;
     }
    }
    cell1[0].text="刪除";
    cell1[1].text="編號";
    cell1[1].visible=false;
    cell1[2].text="巷號名稱";
    cell1[3].text="施工單位";
    cell1[4].text="設計長度";
    cell1[5].text="設計斷面";
    cell1[6].text="本月計劃";
    cell1[7].text="本日";
    cell1[8].text="本月進度累計";
    cell1[9].text="巖性";
    cell1[10].text="角度";
    cell1[11].text="本月";
    cell1[12].text="成巷";
    cell1[13].text="備注";
    
    for(int i=0;i<cell1.length;i++)
    {
     dgi1.cells.add(cell1[i]);
    }
    tablecell[] cell2=new tablecell[6];
    for(int i=0;i<cell2.length;i++)
    {
     cell2[i]=new tablecell();
     
    }
    cell2[0].text="計劃進度";
    cell2[1].text="實際進度";
    cell2[2].text="巷道累計";
    cell2[3].text="進尺長度";
    cell2[4].text="毛面";
    cell2[5].text="成型";
    for(int i=0;i<cell2.length;i++)
    {
     dgi2.cells.add(cell2[i]);
     
    }

    tb.rows.addat(0,dgi1);
    tb.rows.addat(1,dgi2);
   }
   e.item.cells[1].visible=false;
  }

  private void calendar1_selectionchanged(object sender, system.eventargs e)
  {
   this.session["dataset"]=null;
   this.initdata();
  }

  private void delbutton_click(object sender, eventargs e)
  {
   button tmpbutton=(button)sender;
   string id=tmpbutton.id;
   id=id.remove(id.length-1,1);
   string sqlcmd="delete from dayenter where id="+id;
   string connstring="workstation id=server;packet size=4096;user id=sa;data source='.';persist security info=true;initial catalog=winneroa;password=pxh2003";
   sqlconnection conn=new sqlconnection(connstring);
   try
   {
    conn.open();
   }
   catch(exception err)
   {
    response.write(err.tostring());
   }
   sqlcommand cmd=new sqlcommand(sqlcmd,conn);
   try
   {
    cmd.executenonquery();
    this.session["dataset"]=null;
    this.initdata();
   }
   catch(exception err)
   {
    response.write(err.tostring()+sqlcmd);
   }
   finally
   {
    conn.close();
   }
  }
 }
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 榆树市| 泗阳县| 湘潭县| 湘潭市| 永仁县| 鹤山市| 长春市| 射阳县| 横峰县| 清新县| 台东市| 南澳县| 周至县| 宾川县| 旅游| 瓮安县| 集贤县| 娱乐| 乐东| 资溪县| 集贤县| 南岸区| 昌图县| 应城市| 杭锦旗| 奉节县| 揭阳市| 娄底市| 甘德县| 武川县| 鸡东县| 两当县| 万载县| 鹤山市| 夏邑县| 文安县| 南皮县| 红原县| 略阳县| 枞阳县| 临泽县|