0

(asp.net 动态数据)在 db.cs 文件中,我声明了以下内容(与“发票信息”表有关)

[ScaffoldTable(true)]
[DisplayName("Invoice Info")]
[MetadataType(typeof(Invoice_Info_MetaData))]
[DropDownList(Role = "Role_AllPowerfulGroup")]
partial class Invoice_Info
{
}

public class Invoice_Info_MetaData
{
    [Display(Name = "id", Order = 10)]
    public object id { get; set; }

    [Display(Name = "Name", Order = 20)]
    [Required()]
    public object Name { get; set; }

    [Display(Name = "Address", Order = 30)]
    [Required()]
    public object Address { get; set; }

    [Display(Name = "County", Order = 40)]
    [Required()]
    public object County { get; set; }

在屏幕上显示为: 在此处输入图像描述

我不希望用户能够删除它,那么如何从屏幕选项中删除它??(红色箭头指向的图标)谢谢

4

1 回答 1

1

您应该List.aspx为(从项目的 PageTemplates 文件夹中的 List.aspx 复制)创建自定义页面Invoice Info table,然后您可以使用新自定义页面上的删除按钮删除代码(请参阅 GridView 中带有 LinkBut​​ton 控件的 ItemTemplate)。您还可以RowDataBound在自定义页面上向 GridView 添加事件并在代码隐藏中实现删除按钮的隐藏:

protected void gvInvoiceInfo_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton delete = (LinkButton) e.Row.FindControl("DeleteLinkButton");
            delete.Visible = false;
        }
    }

GridView 的 TemplateField 中带有操作DeleteLinkButton的控件 ID在哪里。LinkButton

有关 ASP.NET 动态数据中的页面自定义的更多信息,您可以在如何:使用自定义页面模板自定义单个表格的布局中找到。

编辑:

我想提请您注意,默认情况下可以从 Details.aspx 页面中删除表项。因此,您还应该创建自定义 Details.aspx 页面,以防止从默认 Details.aspx 页面中删除记录。

因此,您应该有两个自定义页面:

~/DynamicData/CustomPages/InvoiceInfo/List.aspx

~/DynamicData/CustomPages/InvoiceInfo/Details.aspx.

编辑:

为了在动态数据站点中实施更集成的安全方法,请参阅 Steve 在Securing Dynamic Data 4 (Replay)中的解决方案。

于 2013-04-20T20:24:53.907 回答