首先,在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中顯示但不需要修改的列可設定為隻讀。