打印本文 打印本文 关闭窗口 关闭窗口
asp.net datagrid实现多层表头
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2420  更新时间:2009/4/23 10:41:40  文章录入:mintao  责任编辑:mintao
dLine()
  {
   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]);
 &nb

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口