代码之家  ›  专栏  ›  技术社区  ›  John

从通用动态数据中删除删除按钮

  •  0
  • John  · 技术社区  · 12 年前

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

    在屏幕上显示为: enter image description here

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

    1 回复  |  直到 12 年前
        1
  •  1
  •   Konstantin    12 年前

    您应该创建自定义 List.aspx 第页,共页 Invoice Info table (从项目中PageTemplates文件夹中的List.aspx中复制),然后您可以使用 删去 按钮(请参阅GridView中带有LinkButton控件的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;
            }
        }
    

    哪里 DeleteLinkButton 是的ID LinkButton 控件在GridView的TemplateField中执行操作。

    有关ASP.NET动态数据中页面自定义的详细信息,请访问 How to: Customize the Layout of an Individual Table By Using a Custom Page Template .

    编辑:

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

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

    ~/DynamicData/CustomPages/InvoiceInfo/List.aspx

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

    编辑:

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

    推荐文章