DataGrid技巧

来源:互联网 发布:linux top命令怎么用 编辑:程序博客网 时间:2024/05/01 09:01

1   如何在datagrid进入编辑状态时在模板列生成控件并作数据绑定?
datagrid.Controls.Add(new   LiteralControl("<asp:CheckBox   id=CheckBox   Text='<%#   Bind("   field1")   %>'runat=server></asp:CheckBox>"));  
   
   
  CheckBox   chb   =   new   CheckBox();  
  datagrid.Controls.Add(chb);


2   在web页面上点击模板列编辑datagrid时,单元格变得很长,怎么限制单元格的宽度?
  1,如果你的数据列是模板列,那么,你可以在html中的设定width    
  2,如果是绑定列则如下:  
  private   void   mygrid_ItemDataBound_1(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  if   (e.Item.ItemType   ==   ListItemType.EditItem)    
  {  
  for   (int   i=0;i<e.Item.Cells.Count;i++)  
  {  
  if(e.Item.Cells[i].Controls.Count>0)  
  {  
  try  
  {  
  TextBox   t   =(TextBox)e.Item.Cells[i].Controls[0];  
  t.Width=70;  
  }  
  catch(Exception   ee)  
  {  
  }  
  }  
  }  
  }  
或者:
private void datagrid1_itemdatabound(object sender,system.web.ui.webcontrols.datagriditemeventargs e)
{
  if(e.item.itemtype==listitemtype.edititem)
     {
        textbox t=(textbox)e.item.cell[0].controls[0];
        t.width=20;
     }
}

3   一般的主要操作参考
private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   DataGrid1.EditItemIndex = -1;
   //数据绑定
    this.DateBind();
  }

private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   DataGrid1.EditItemIndex = e.Item.ItemIndex;
   //数据绑定
    this.DateBind();
  }

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   //取得编辑行的关键字段的值    String _roleName = ((TextBox) e.Item.FindControl("roleName")).Text;
   int checkedid = (int)DataGrid1.DataKeys[e.Item.ItemIndex];
   String score20 = ((TextBox)e.Item.Cells[3].Controls[0]).Text;//((TextBox) e.Item.FindControl("score20")).Text;
   String score21 = ((TextBox)e.Item.Cells[4].Controls[0]).Text;//((TextBox) e.Item.FindControl("score21")).Text;
   double score3=Convert.ToDouble(score20)+Convert.ToDouble(score21)+Convert.ToDouble( e.Item.Cells[2].Text);


   db.open();
   db.getData("update  Tmpsumcheck set score20="+score20+" , score21="+score21+",score3="+score3.ToString()+",lever='"+this.getLevel(score3)+"' where sumid="+checkedid.ToString(),false);
   db.close();
   //取得文本框中输入的内容
   
   try
   {
    
    DataGrid1.EditItemIndex = -1;
     this.DateBind();
   }
   catch(Exception err)
   {
    //输出异常信息
    Response.Write(err.ToString());
   }
   finally
   {

    //关闭连接对象
    //conn.Close();
   }
  }
 private void RightsGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
  
   DM dm=new DM();
   string man=(string)RightsGrid.DataKeys[e.Item.ItemIndex];
   dm.DeleteCheckMan(man);
   RightsGrid.DataSource=dm.getCheckReport(CHECK_TYPE);
    
   RightsGrid.DataBind();
  }
private void RightsGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   RightsGrid.CurrentPageIndex = e.NewPageIndex;
   DM dm=new DM();
   RightsGrid.DataSource=dm.getCheckReport(CHECK_TYPE);
    
   RightsGrid.DataBind();

  }

 

原创粉丝点击