首先,在DataGrid有一模版列,模版列中ItemTemplate中放置HyperLink控件,EditItemTemplate中可放入一TextBox,html中的相应代码为

< asp:TemplateColumn HeaderText ="报表名称" >

< ItemTemplate >

< asp:HyperLink id =Hyperlink1 runat ="server" NavigateUrl ='<%# DataBinder.Eval(Container, "DataItem.rptlink")% > ' Target="_self">
<% ... # DataBinder.Eval(Container, "DataItem.name") %>

</ asp:HyperLink >

</ ItemTemplate >

< EditItemTemplate >

< asp:TextBox id =txtName runat ="server" Width ="280" Text ='<%#DataBinder.Eval(Container.DataItem,"name")% > '>

</ asp:TextBox >

</ EditItemTemplate >

</ asp:TemplateColumn >
后台DataGrid的更新事件

// 更新

private void dgWTJ_UpdateCommand( object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
... {
string rptname = ((TextBox)(e.Item.Cells[0].Controls[1])).Text;
long reportid = long.Parse(e.Item.Cells[5].Text);
if (rptname == "")
...{
this.lblerr.Text = "提示信息:报表名称不能为空!";
}
else
...{
//报表重命名,参数为报表名称,报表ID
this.lblerr.Text = "";
hbbu.RenameReport(rptname,reportid);
this.dgWTJ.EditItemIndex = -1;
BindWTJList();
}
}

在DataGrid中显示但不需要修改的列可设置为只读。