首先,在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中显示但不需要修改的列可设置为只读。
本文介绍如何使用ASP.NET DataGrid的模板列实现报表名称的显示与编辑功能,并提供了后台更新事件的具体实现。
275

被折叠的 条评论
为什么被折叠?



