CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请教:datagrid嵌套datagrid后,子datagrid的update,edit,delete事件,如何增加上去呢?

楼主lhdjk(耗子)2006-03-20 22:56:38 在 .NET技术 / C# 提问

//外层的datagrid绑定方法:  
  private   void   dg0_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
                                ......  
                                DataGrid   dg=new   DataGrid();//内层datagrid  
                                ......  
                                if(e.Item.ItemType==System.Web.UI.WebControls.ListItemType.Item   ||   e.Item.ItemType==ListItemType.AlternatingItem)  
  {  
  e.Item.Cells[1].Controls.Add(dg);  
  }  
                                dg.EditCommand+=new   DataGridCommandEventHandler(this.dg_EditCommand);  
                                //??????上边一句,我增加后,在方法外写private   void   dg_EditCommand}  
  }  
  private   void   dg_EditCommand(object   sender,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
   
  dg.EditItemIndex=e.Item.ItemIndex;  
                                                          ......  
                                        }  
  但dg_EditCommand无法调用dg了。我应该如何写,才对呢???请大侠高手指点!!!!!!!  
  问题点数:20、回复次数:14Top

1 楼saucer(思归)回复于 2006-03-20 23:35:22 得分 10

don't   use   ItemDataBound   event,   use   ItemCreated   event   instead,   but   do   the   databinding   the   outer   DataGrid's   ItemDataBound   event   handlerTop

2 楼lhdjk(耗子)回复于 2006-03-20 23:38:07 得分 0

老大,说详细些呀!!!Top

3 楼saucer(思归)回复于 2006-03-20 23:45:45 得分 0

<asp:DataGrid   id="dg0"  
  OnItemCreated="dg0_ItemCreated"  
  OnItemDataBound="   dg0_ItemDataBound"  
   
  private   void   dg0_ItemCreated(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  if(e.Item.ItemType==System.Web.UI.WebControls.ListItemType.Item   ||   e.Item.ItemType==ListItemType.AlternatingItem)  
  {  
              DataGrid   dg=new   DataGrid();//内层datagrid  
  dg.ID   =   "mynestedGrid";  
  e.Item.Cells[1].Controls.Add(dg);  
    dg.EditCommand+=new   DataGridCommandEventHandler(this.dg_EditCommand);  
                       
  }  
                               
  }  
   
   
  private   void   dg0_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
                                if(e.Item.ItemType==System.Web.UI.WebControls.ListItemType.Item   ||   e.Item.ItemType==ListItemType.AlternatingItem)  
  {  
  DataGrid   dg   =   e.Item.FindControl("mynestedGrid")   as   DataGrid;  
  //call   dg.DataBind()   if   you   need   to  
  }  
  }  
  Top

4 楼lhdjk(耗子)回复于 2006-03-20 23:52:54 得分 0

为什么我跳出private   void   dg0_ItemCreated后  
  构造:  
  private   void   dg_EditCommand(object   sender,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
   
  dg.EditItemIndex=e.Item.ItemIndex;  
                                                          ......  
                                        }  
  输入dg.还是没有智能跟踪,也就是说,还是没法调用局部的dg呢??Top

5 楼charmgjj(杰)回复于 2006-03-20 23:53:54 得分 0

学习一下Top

6 楼saucer(思归)回复于 2006-03-21 00:14:25 得分 0

private   void   dg_EditCommand(object   sender,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
   
  DataGrid   dg   =   sender   as   DataGrid;  
  or  
   
  DataGrid   dg   =   e.Item.FindControl("mynestedGrid");  
   
  dg.EditItemIndex=e.Item.ItemIndexTop

7 楼lhdjk(耗子)回复于 2006-03-21 02:57:37 得分 0

在下写了一个测试,发现dg0_ItemCreated方法运行后,并没有将dg加入到主datagrid中去呀?是怎么回事呢?  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
          this.dg0.Attributes.Add("style","word-break:keep-all;word-wrap:normal");  
          if(!IsPostBack)  
          {  
                  Session["px"]="";  
                  yyrbb();  
          }  
  }  
   
  SqlConnection   conn=new   SqlConnection("Data   Source=localhost;Initial   Catalog=tdb;uid=sa");  
  string   yyjs="select   name,age   from   userinfo";  
  SqlDataAdapter   sda0=new   SqlDataAdapter(yyjs,conn);  
  DataSet   ds0=new   DataSet();  
  if   (ViewState["myDst"]   !=   null)  
  ds0=(DataSet)ViewState["myDst"];  
  DataTable   dt0=new   DataTable();  
  ds0.Tables.Add(dt0);  
  ds0.Tables[0].TableName="dt0";  
  sda0.Fill(ds0,"dt0");  
  DataGrid   dg0=new   DataGrid();  
  ViewState["myDst"]=ds0;  
  dg0.Attributes.Add("style","word-break:keep-all;word-wrap:normal");  
  dg0.HeaderStyle.BackColor=System.Drawing.Color.DarkBlue;  
  dg0.HeaderStyle.Font.Size=9;  
  dg0.HeaderStyle.ForeColor=System.Drawing.Color.White;  
  dg0.ItemStyle.Font.Size=9;  
  dg0.ItemCreated+=new   DataGridItemEventHandler(dg0_ItemCreated);  
  dg0.ItemDataBound+=new   DataGridItemEventHandler(dg0_ItemDataBound);  
  dg0.DataSource=ViewState["myDst"];  
  dg0.DataBind();  
  }  
   
  private   void   dg0_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  if(e.Item.ItemType==System.Web.UI.WebControls.ListItemType.Item   ||   e.Item.ItemType==ListItemType.AlternatingItem)  
  {  
  //DataGrid   dg   =   e.Item.FindControl("tmpdg")   as   DataGrid;  
  //e.Item.Cells[1].Controls.Add(dg);  
  if(e.Item.Cells[1].HasControls()==true)  
  {  
  e.Item.Cells[0].Text+=e.Item.Cells[1].Controls[0].GetType().ToString();  
  }  
  else  
  {  
  e.Item.Cells[0].Text+="   no   object";  
  }  
  }  
   
  private   void   dg0_ItemCreated(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  if(e.Item.ItemType==System.Web.UI.WebControls.ListItemType.Item   ||   e.Item.ItemType==ListItemType.AlternatingItem)  
  {  
  DataGrid   dg=new   DataGrid();  
  EditCommandColumn   dge=new   EditCommandColumn();  
  dge.EditText="edit";  
  dg.Columns.Add(dge);  
  dg.ID="tmpdg";  
  e.Item.Cells[1].Controls.Add(dg);  
  dg.AutoGenerateColumns=false;  
  dg.EditCommand+=new   DataGridCommandEventHandler(dg_EditCommand);  
  }  
   
  }  
   
  private   void   dg_EditCommand(object   sender,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
  DataGrid   dg   =   sender   as   DataGrid;  
  dg.EditItemIndex=e.Item.ItemIndex;  
  DataSet   dataSet2=new   DataSet();  
  dataSet2=(DataSet)ViewState["submyDst"];  
  ViewState["submyDst"]   =   dataSet2;  
  dataSet2.Tables[0].AcceptChanges();  
  dg.DataSource   =   dataSet2.Tables[0];  
  dg.DataBind();  
  }Top

8 楼saucer(思归)回复于 2006-03-21 03:12:38 得分 0

how   does   your   page   look   like??   where   did   you   bind   the   nested   datagrid?  
   
  private   void   dg0_ItemDataBound(object   sender,   DataGridItemEventArgs   e)  
  {  
  if(e.Item.ItemType==ListItemType.Item   ||   e.Item.ItemType==   ListItemType.AlternatingItem)  
  {  
  DataGrid   dg   =   e.Item.FindControl("tmpdg")   as   DataGrid;  
  dg.DataSource   =   new   string[]{"a","b","c"};  
  dg.DataBind();  
  }  
   
  }  
   
  where   are   these   code   located??  
   
  SqlConnection   conn=new   SqlConnection("Data   Source=localhost;Initial   Catalog=tdb;uid=sa");  
  string   yyjs="select   name,age   from   userinfo";  
  ....  
  dg0.DataBind();  
   
   
  don't   use   ViewState   to   save   database   info  
   
  show   all   your   codeTop

9 楼lhdjk(耗子)回复于 2006-03-21 04:09:22 得分 0

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   webapp1  
  {  
  ///   <summary>  
  ///   yyglreport   的摘要说明。  
  ///   </summary>  
  public   class   workreport   :   System.Web.UI.Page  
  {  
  protected   System.Web.UI.WebControls.Label   Label3;  
  protected   System.Web.UI.WebControls.Label   Label2;  
  protected   System.Web.UI.WebControls.Label   Label1;  
  protected   System.Web.UI.HtmlControls.HtmlGenericControl   DIV1;  
  protected   System.Web.UI.WebControls.Label   bzselectname;  
  protected   System.Web.UI.HtmlControls.HtmlTable   hzpx;  
  protected   System.Web.UI.HtmlControls.HtmlSelect   Select6;  
  protected   System.Web.UI.WebControls.TextBox   TextBox1;  
  protected   System.Web.UI.WebControls.TextBox   TextBox2;  
  protected   System.Web.UI.WebControls.Button   Button3;  
  protected   System.Web.UI.HtmlControls.HtmlSelect   Select7;  
  protected   System.Web.UI.HtmlControls.HtmlGenericControl   rightmenu;  
  protected   System.Web.UI.WebControls.Button   Button1;  
  protected   System.Web.UI.WebControls.Button   Button2;  
  protected   System.Web.UI.WebControls.Calendar   Calendar1;  
  protected   System.Web.UI.WebControls.Calendar   Calendar2;  
  protected   System.Web.UI.WebControls.Label   Label4;  
  protected   System.Web.UI.WebControls.Label   Label5;  
  protected   System.Web.UI.WebControls.Label   Label6;  
          protected   string   selectstr;  
  protected   double   hykzf;  
  protected   double   xjzf;  
                  protected   double   sjstotal;  
  protected   double   jstotal;  
  protected   double   zltotal;  
  protected   double   cztotal;  
  protected   double   bktotal;  
  protected   System.Web.UI.WebControls.Label   Labelcz;  
  protected   System.Web.UI.HtmlControls.HtmlGenericControl   Div2;  
  protected   System.Web.UI.WebControls.DataGrid   czmx;  
  protected   System.Web.UI.HtmlControls.HtmlInputButton   Button4;  
  protected   System.Web.UI.WebControls.DataGrid   dg0;  
  protected   double   totalzf;  
  //protected   System.Web.UI.WebControls.DataGrid   dg;  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
   
  hykzf=0.00;  
  xjzf=0.00;  
  totalzf=0.00;  
  sjstotal=0.00;  
  jstotal=0.00;  
  zltotal=0.00;  
  cztotal=0.00;  
  bktotal=0.00;  
  if(!IsPostBack)  
  {  
   
  //SqlConnection   conn=new   SqlConnection("Data   Source=localhost;Initial   Catalog=webapp1;Integrated   Security=SSPI");  
  if(Session["report"].ToString()=="报表")  
  {  
  Session["px"]="";  
  yyrbb();  
  }  
  }  
   
  }  
   
   
   
   
  private   void   yyrbb()  
  {  
  string   todaydate=System.DateTime.Now.ToString("yyyy-MM-dd");//取得当天日期  
   
  Label1.Text=Session["report"].ToString()+"<br><font   size=2>"+todaydate.ToString();//设定显示标题  
  //bzselectname.Visible=true;  
  string   selgrp="";//分组字段  
  string   selas="";//分组显示值  
  string   yyjs="";//查询语句  
  Session["selgrp"]="";//初始  
  Session["selas"]="";//初始  
  if(Select6.Items[Select6.SelectedIndex].Text==""   &&   TextBox1.Text.ToString().Trim()==""   &&   TextBox2.Text.ToString().Trim()=="")  
  {  
  selgrp="工程师";  
  selas="按"+selgrp.ToString().Trim()+"分组";  
  yyjs="select   distinct   "+selgrp.ToString()+"   as   "+selas.ToString().Trim()+",''   as   明细   from   车间明细   where   substring(convert(varchar(12),工作时间,121),0,11)   =   '"+todaydate.ToString()+"'";  
  Session["selgrp"]=selgrp.ToString().Trim();  
  Session["selas"]=selas.ToString().Trim();  
  }  
  else  
  {  
  if(Select6.Items[Select6.SelectedIndex].Text=="")  
  {  
  selgrp="工程师";  
  Session["selgrp"]=selgrp.ToString().Trim();  
  selas="按"+selgrp.ToString().Trim()+"分组";  
  }  
  else  
  {  
  selgrp=Select6.Items[Select6.SelectedIndex].Text.ToString().Trim();  
  selas="按"+Select6.Items[Select6.SelectedIndex].Text.ToString().Trim()+"分组";  
  Session["selgrp"]=selgrp.ToString().Trim();  
  }  
  yyjs="select   distinct   "+selgrp.ToString()+"   as   "+selas.ToString().Trim()+",''   as   明细   from   工作明细   where   substring(convert(varchar(12),工作时间,121),0,11)   >=   '"+TextBox1.Text.ToString().Trim()+"'   and   substring(convert(varchar(12),工作时间,121),0,11)   <='"+TextBox2.Text.ToString().Trim()+"'";  
  Session["selgrp"]=selgrp.ToString().Trim();  
  Session["selas"]=selas.ToString().Trim();  
  }  
   
                          SqlConnection   conn=new   SqlConnection("Data   Source=localhost;Initial   Catalog=webapp1;uid=sa");  
  SqlDataAdapter   sda0=new   SqlDataAdapter(yyjs,conn);  
  DataSet   ds0=new   DataSet();  
  if   (ViewState["myDst"]   !=   null)  
  ds0=(DataSet)ViewState["myDst"];  
  DataTable   dt0=new   DataTable();  
  ds0.Tables.Add(dt0);  
  ds0.Tables[0].TableName="dt0";  
  sda0.Fill(ds0,"dt0");  
  //DataGrid   dg0=new   DataGrid();  
  ViewState["myDst"]=ds0;  
   
  dg0.Attributes.Add("style","word-break:keep-all;word-wrap:normal");  
  dg0.HeaderStyle.BackColor=System.Drawing.Color.DarkBlue;  
  dg0.HeaderStyle.Font.Size=9;  
                          //dg0.ShowHeader=false;  
  dg0.HeaderStyle.ForeColor=System.Drawing.Color.White;  
  dg0.ItemStyle.Font.Size=9;  
  //dg0.ItemStyle.Wrap=false;  
  //dg0.AlternatingItemStyle.Wrap=false;  
   
  dg0.ItemCreated+=new   DataGridItemEventHandler(dg0_ItemCreated);  
  dg0.ItemDataBound+=new   DataGridItemEventHandler(dg0_ItemDataBound);  
   
  dg0.DataSource=ds0.Tables[0];  
  //dg0.DataSource=ViewState["myDst"];  
  dg0.DataBind();  
  dg0.HeaderStyle.Wrap=false;  
   
  //if(((DataGrid)DIV1.FindControl(DataGrid)).ID=="dg0")  
  //{  
  //dg0.DataSource=ViewState["myDst"];  
  //dg0.DataBind();  
  //}  
  //else  
  //{  
   
  //DIV1.Controls.Add(dg0);  
  //}  
  }  
  #region   Web   Form   Designer   generated   code  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.dg0.SelectedIndexChanged   +=   new   System.EventHandler(this.DataGrid1_SelectedIndexChanged);  
  this.Button1.Click   +=   new   System.EventHandler(this.Button1_Click);  
  this.Calendar1.SelectionChanged   +=   new   System.EventHandler(this.Calendar1_SelectionChanged);  
  this.Button2.Click   +=   new   System.EventHandler(this.Button2_Click);  
  this.Calendar2.SelectionChanged   +=   new   System.EventHandler(this.Calendar2_SelectionChanged);  
  this.Button3.Click   +=   new   System.EventHandler(this.Button3_Click);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
   
  }  
  #endregion  
  Top

10 楼lhdjk(耗子)回复于 2006-03-21 04:21:54 得分 0

//下边方法填充子datagrid  
  private   void   dg0_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  string   whereval=e.Item.Cells[0].Text.ToString();string   todaydate="";  
  todaydate=System.DateTime.Now.ToString("yyyy-MM-dd");//取得当天日期  
  string   xjc="";string   px="";  
  SqlConnection   conn=new   SqlConnection("Data   Source=localhost;Initial   Catalog=webapp1;uid=sa");  
  string   qzd="select   top   1   *   from   工作明细";  
  SqlDataAdapter   sdqzd=new   SqlDataAdapter(qzd,conn);  
  DataSet   dsqzd=new   DataSet();DataTable   dtqzd=new   DataTable();dsqzd.Tables.Add(dtqzd);  
  dsqzd.Tables[0].TableName="dtqzd";sdqzd.Fill(dsqzd,"dtqzd");  
  if(Session["px"].ToString().Trim()=="")  
  {px=Session["selgrp"].ToString().Trim();}  
  else{px=Session["px"].ToString().Trim();}  
  string   tempxjc="select   流水号,派工单号,编号,姓名,工作时间,类型,工程师,技师,小工,convert(money,大件小计)   as   大件小计,convert(money,工时费)   as   工时费,convert(money,划费)   as   划费,convert(money,合计金额)   as   合计金额,车间,制单员";  
  string   bcstr="";  
  for(int   tmpcol=15;tmpcol<dtqzd.Columns.Count;tmpcol++)  
  {  
  if(tmpcol%2!=0){  
  bcstr=bcstr+","+dtqzd.Columns[tmpcol].ColumnName.ToString().Trim();  
              }  
  else           {  
  bcstr=bcstr+","+dtqzd.Columns[tmpcol].ColumnName.ToString().Trim()+"   as   "+dtqzd.Columns[tmpcol].ColumnName.ToString().Trim();  
              }  
  }  
  if(TextBox1.Text.ToString().Trim()==""   &&   TextBox2.Text.ToString().Trim()=="")  
  {tempxjc=tempxjc+bcstr+"   from   工作明细   where   substring(convert(varchar(12),工作时间,121),0,11)   =   '"+todaydate.ToString()+"'   and   "+Session["selgrp"].ToString().Trim()+"='"+whereval.ToString()+"'   order   by   "+px.ToString().Trim();}  
  else  
  {tempxjc=tempxjc+bcstr+"   from   工作明细   where   substring(convert(varchar(12),工作时间,121),0,11)   >=   '"+TextBox1.Text.ToString().Trim()+"'   and   substring(convert(varchar(12),工作时间,121),0,11)   <='"+TextBox2.Text.ToString().Trim()+"'   and     "+Session["selgrp"].ToString().Trim()+"='"+whereval.ToString()+"'   order   by   "+px.ToString().Trim();}  
  SqlDataAdapter   sda1=new   SqlDataAdapter(tempxjc,conn);DataSet   ds1=new   DataSet();  
  DataTable   dt1=new   DataTable();ds1.Tables.Add(dt1);ds1.Tables[0].TableName="dt1";  
  sda1.Fill(ds1,"dt1");DataSet   ds2=new   DataSet();  
  DataTable   lastdt=dt1.Clone();ds2.Tables.Add(lastdt);  
  ds2.Tables[0].TableName="lastdt";int   maxsubdl=0;  
  for(int   h=0;h<dt1.Rows.Count;h++)  
    {for(int   l=15;l<dt1.Columns.Count;l++)  
          {if(dt1.Rows[h][l].ToString().Trim().Split('|').Length>maxsubdl)  
  {  
  maxsubdl=dt1.Rows[h][l].ToString().Trim().Split('|').Length;  
  }  
          }  
          DataTable   temprow=dt1.Clone();  
  for(int   templ=0;templ<maxsubdl;templ++)  
  {  
  DataRow   tempdr=temprow.NewRow();  
  temprow.Rows.Add(tempdr);  
  }  
  for(int   qc=0;qc<dt1.Columns.Count;qc++)  
  {  
  if(qc<14)  
  {  
  temprow.Rows[0][qc]=dt1.Rows[h][qc].ToString().Trim();  
  }  
  else  
  {  
  if(dt1.Rows[h][qc].ToString().Trim().Split('|').Length==0)  
  {  
  temprow.Rows[0][qc]=dt1.Rows[h][qc].ToString().Trim();  
  }  
  else  
  {  
  for(int   colds=0;colds<dt1.Rows[h][qc].ToString().Trim().Split('|').Length;colds++)  
  {  
  temprow.Rows[colds][qc]=dt1.Rows[h][qc].ToString().Trim().Split('|')[colds].ToString().Trim();  
  }}}}  
  temprow.TableName=lastdt.TableName; ds2.Merge(temprow);  
  }  
  ArrayList   totalrow=new   ArrayList();  
  DataRow   dr=lastdt.NewRow();  
  lastdt.Rows.Add(dr);  
  double   totalje=0.00;  
  for(int   lastcol=0;lastcol<lastdt.Columns.Count;lastcol++)  
  {  
  if((lastcol==9   ||   lastcol==10||   lastcol==11||lastcol==12)   ||   (lastcol>15   &&   lastcol%2==0))  
  {  
  for(int   lastrow=0;lastrow<lastdt.Rows.Count;lastrow++)  
  {  
  if(lastcol==10)  
  {  
  if(lastdt.Rows[lastrow][lastcol].ToString().Trim()=="")  
  {  
  hykzf=hykzf+0;  
  }  
  else  
  {  
  hykzf=hykzf+Convert.ToDouble(lastdt.Rows[lastrow][lastcol].ToString());  
  }  
  Label4.Text="划费金额:"+hykzf.ToString().Trim();  
  }  
  if(lastcol==11)  
  {  
  if(lastdt.Rows[lastrow][lastcol].ToString().Trim()=="")  
  {xjzf=xjzf+0;}  
  else{xjzf=xjzf+Convert.ToDouble(lastdt.Rows[lastrow][lastcol].ToString());}  
  Label5.Text="工时费金额:"+xjzf.ToString().Trim();  
  }  
  totalzf=hykzf+xjzf+cztotal; Label6.Text="总金额:"+totalzf.ToString().Trim();Top

11 楼lhdjk(耗子)回复于 2006-03-21 04:22:11 得分 0

if(lastdt.Rows[lastrow][lastcol].ToString()=="")  
  {  
  totalje+=0;  
  //ds1.Tables[0].Rows[dt1.Rows.Count-1][lastcol]="";  
   
  }  
  else  
  {  
  totalje=totalje+Convert.ToDouble(lastdt.Rows[lastrow][lastcol].ToString());  
  }  
  }  
  totalrow.Add(totalje.ToString());  
  lastdt.Rows[lastdt.Rows.Count-1][lastcol]=totalje.ToString();  
  //ds1.Tables["lastdt"].Rows[lastdt.Rows.Count-1][lastcol]=totalje.ToString();  
  totalje=0.00;  
   
  }  
  else  
  {  
  totalrow.Add("");  
  //ds1.Tables[0].Rows[dt1.Rows.Count-1][lastcol]=null;  
  }  
  }  
   
  //生成提成  
  //string   qbl="select   提成比例设定.*   from   goodstable   right   join   提成比例设定   on   goodstable.nodetc=提成比例设定.档次   where   goodstable.nodename='";  
  DataRow   dr1=lastdt.NewRow();  
  lastdt.Rows.Add(dr1);  
  //double   totalje=0.00;  
  double   totaltc=0.00;  
  for(int   lastcol=0;lastcol<lastdt.Columns.Count;lastcol++)  
  {  
  if(lastcol>15   &&   lastcol%2==0)  
  {  
  string   qbl="select   提成比例设定.*   from   人员管理   right   join   提成比例设定   on   人员管理.提成设定=提成比例设定.提成方式   where   提成比例设定.业务大类名称='"+lastdt.Columns[lastcol].ColumnName.ToString().TrimEnd('金','额').ToString().Trim()+"'   and   人员管理.姓名   like   '"+whereval.ToString().Trim()+"%'";  
  SqlDataAdapter   tcsda=new   SqlDataAdapter(qbl,conn);  
  DataSet   tcds=new   DataSet(); DataTable   tcdt=new   DataTable(); tcds.Tables.Add(tcdt);  
  tcds.Tables[0].TableName="tcdt";tcsda.Fill(tcds,"tcdt");  
  double   lasttc=0.00;  
  for(int   t=0;t<tcdt.Rows.Count;t++)  
  {  
  if(tcdt.Rows[t][5].ToString().Trim()!="0"   &&     tcdt.Rows[t][5].ToString().Trim()!="")  
  {  
  for(int   yt=0;yt<lastdt.Rows.Count-2;yt++)      
  {  
  if(lastdt.Rows[yt][lastcol].ToString().Trim()!="0"   &&   lastdt.Rows[yt][lastcol].ToString().Trim()!="")  
  {  
  lasttc=lasttc+Convert.ToDouble(tcdt.Rows[t][5].ToString().Trim());  
   
  }  
  }break;  
  }  
  else  
  {  
  if(Convert.ToDouble(lastdt.Rows[lastdt.Rows.Count-2][lastcol].ToString().Trim())>=Convert.ToDouble(tcdt.Rows[t][2].ToString().Trim())   &&   Convert.ToDouble(lastdt.Rows[lastdt.Rows.Count-2][lastcol].ToString().Trim())<=Convert.ToDouble(tcdt.Rows[t][3].ToString().Trim()))  
  {  
  lasttc=lasttc+Convert.ToDouble(lastdt.Rows[lastdt.Rows.Count-2][lastcol].ToString().Trim())*Convert.ToDouble(tcdt.Rows[t][4].ToString().Trim())/100;  
   
  break;  
  }  
  }break;  
  }lastdt.Rows[lastdt.Rows.Count-1][lastcol-1]="提成金额:"+lasttc.ToString().Trim();  
  totaltc=totaltc+lasttc;  
   
  lasttc=0.00;  
  if(Session["selgrp"].ToString().Trim()=="工程师"   &&   whereval.ToString().Trim()!="无"   &&   whereval.ToString().Trim()!="")  
  {  
  lastdt.Rows[lastdt.Rows.Count-1][0]=totaltc.ToString().Trim();  
  }  
  else  
  {  
  if(Session["selgrp"].ToString().Trim()=="技师"     &&   whereval.ToString().Trim()!="无"   &&   whereval.ToString().Trim()!="")  
  {  
  lastdt.Rows[lastdt.Rows.Count-1][0]=totaltc.ToString().Trim();  
  }  
  else  
  {  
  if(Session["selgrp"].ToString().Trim()=="小工"     &&   whereval.ToString().Trim()!="无"   &&   whereval.ToString().Trim()!="")  
  {  
  lastdt.Rows[lastdt.Rows.Count-1][0]=totaltc.ToString().Trim();  
  }  
  }  
  }  
  }  
   
  }totaltc=0.00;  
   
   
   
   
  dg.AutoGenerateColumns=false;  
   
  System.Web.UI.WebControls.EditCommandColumn   edits=new   EditCommandColumn();  
  edits.EditText="编辑";  
  edits.UpdateText="更新";  
  edits.CancelText="取消";  
  //edits.CancelText="取消";  
  //edits.UpdateText="更新";  
  //edits.ButtonType=System.Web.UI.WebControls.ButtonColumnType.LinkButton;  
  dg.Columns.Add(edits);  
                   
   
  for(int   s=0;s<ds2.Tables[0].Columns.Count;s++)  
  {  
  System.Web.UI.WebControls.BoundColumn   bc=new   BoundColumn();  
  bc.DataField=ds2.Tables[0].Columns[s].ColumnName;  
  bc.HeaderText=ds2.Tables[0].Columns[s].ColumnName.ToString();  
  bc.HeaderStyle.Wrap=false;  
  bc.HeaderStyle.BackColor=System.Drawing.Color.DodgerBlue;  
  bc.HeaderStyle.ForeColor=System.Drawing.Color.White;  
  bc.ItemStyle.Wrap=false;  
  bc.HeaderStyle.Font.Size=9;  
  bc.ItemStyle.Font.Size=9;  
  dg.Columns.Add(bc);  
  if(ds2.Tables[0].Columns[s].ColumnName.ToString().Trim()!="工作时间")  
  {  
  Select6.Items.Add(new   ListItem(ds1.Tables[0].Columns[s].ColumnName.ToString(),ds1.Tables[0].Columns[s].ColumnName.ToString()));  
  Select7.Items.Add(new   ListItem(ds1.Tables[0].Columns[s].ColumnName.ToString(),ds1.Tables[0].Columns[s].ColumnName.ToString()));  
  }  
  }  
  dg.DataSource=ds2.Tables[0].DefaultView;  
  dg.DataBind();  
  ViewState["submyDst"]=new   DataSet();  
  }  
  }  
  private   void   Calendar1_SelectionChanged(object   sender,   System.EventArgs   e)  
  {  
  TextBox1.Text=Calendar1.SelectedDate.ToString("yyyy-MM-dd");  
  Calendar1.Visible=false;  
  Calendar1.SelectedDate=Convert.ToDateTime("0001-1-1   00:00:00");  
  }  
  private   void   Calendar2_SelectionChanged(object   sender,   System.EventArgs   e)  
  {  
  TextBox2.Text=Calendar2.SelectedDate.ToString("yyyy-MM-dd");  
  Calendar2.Visible=false;  
  Calendar2.SelectedDate=Convert.ToDateTime("0001-1-1   00:00:00");  
  }  
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  Calendar1.Visible=true;  
  Calendar2.Visible=false;  
  }  
   
  private   void   Button2_Click(object   sender,   System.EventArgs   e)  
  {  
  Calendar2.Visible=true;  
  Calendar1.Visible=false;  
  }  
  private   void   Button3_Click(object   sender,   System.EventArgs   e)  
  {  
  //DIV1.Controls.Remove(dg0);  
  Session["px"]=Select7.Items[Select7.SelectedIndex].Value.ToString().Trim();  
  ViewState["myDst"]=new   DataSet();  
  yyrbb();  
   
  }  
   
   
  private   void   dg0_ItemCreated(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  if(e.Item.ItemType==System.Web.UI.WebControls.ListItemType.Item   ||   e.Item.ItemType==ListItemType.AlternatingItem)  
  {  
  DataGrid   dg=new   DataGrid();  
  EditCommandColumn   dge=new   EditCommandColumn();  
  dge.EditText="edit";  
  dg.Columns.Add(dge);  
  dg.ID="tmpdg";  
  e.Item.Cells[1].Controls.Add(dg);  
  dg.AutoGenerateColumns=false;  
  dg.EditCommand+=new   DataGridCommandEventHandler(dg_EditCommand);  
  }  
   
  }  
   
  private   void   dg_EditCommand(object   sender,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
  DataGrid   dg   =   sender   as   DataGrid;  
  dg.EditItemIndex=e.Item.ItemIndex;  
  DataSet   dataSet2=new   DataSet();  
  dataSet2=(DataSet)ViewState["submyDst"];  
  ViewState["submyDst"]   =   dataSet2;  
  dataSet2.Tables[0].AcceptChanges();  
  dg.DataSource   =   dataSet2.Tables[0];  
  dg.DataBind();  
  }  
   
  private   void   dg_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  for(int   kj=0;kj<e.Item.Cells.Count;kj++)  
  {  
  if(e.Item.Cells[kj].Text.ToString().Trim().StartsWith("<划费>")==true)  
  {  
  e.Item.Cells[kj].BackColor=System.Drawing.Color.Green;  
  e.Item.Cells[kj].ForeColor=System.Drawing.Color.White;  
  }  
  }  
  }  
                   
   
  }  
  }  
  Top

12 楼quanyi(长生天)回复于 2006-03-21 09:30:09 得分 0

markTop

13 楼saucer(思归)回复于 2006-03-21 09:34:43 得分 0

oh,   god,   your   code   is   unmaintainable,   try   to   move  
   
  dg0.ItemCreated+=new   DataGridItemEventHandler(dg0_ItemCreated);  
  dg0.ItemDataBound+=new   DataGridItemEventHandler(dg0_ItemDataBound);  
   
   
  into    
   
  InitializeComponent()Top

14 楼singlepine(小山)回复于 2006-03-21 21:37:10 得分 10

参考下这个  
  http://singlepine.cnblogs.com/articles/312975.htmlTop

相关问题

  • 嵌套的datagrid?
  • datagrid嵌套
  • datagrid嵌套datagrid问题
  • DataGrid嵌套的问题
  • DataGrid嵌套控件问题
  • 请教:关于datagrid嵌套
  • 关于datagrid嵌套,求助!
  • 在datagrid里,怎么嵌套datagrid
  • datagrid嵌套datagrid时的分页问题
  • 一个datagrid嵌套datagrid的问题

关键词

  • datagrid
  • selgrp
  • selas
  • webcontrols
  • protected
  • ui
  • dg
  • dsqzd
  • dtqzd
  • trim

得分解答快速导航

  • 帖主:lhdjk
  • saucer
  • singlepine

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo