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();
}