【问题标题】:Property on custom control自定义控件的属性
【发布时间】:2011-12-08 04:37:22
【问题描述】:

我需要向我的自定义控件添加一个属性,该属性可以从数据库中写入和读取值,但是当用户从属性框中更改属性值时,它会将其作为我控件的属性写入我的页面。

如何防止 Visual Studio 在页面上写入属性值?

【问题讨论】:

  • asp.net web 服务器控制?你能显示一些标记和控件类声明吗?
  • 写在我的页面上作为我的控件的属性”是什么意思?
  • 我的意思是,如果我在 Visual Studio 的属性窗口中设置值(ReadWriteDBValue),它会以类似 '' 我的目标是将值保存在 DB Only 中,而不将此属性添加到 Control Element

标签: asp.net visual-studio-2010 custom-controls


【解决方案1】:

我认为 Control 类的 DesignMode 属性正是您要寻找的:

    public string ReadWriteDBValue 
    {
        get
        {
            if (!this.DesignMode)
                return GetValueFromDB();
            else
                return string.Empty;
        }
        set 
        {
            if (!this.DesignMode)
                SetValueFromDB(value);

        }
    }

在某些情况下,DesignMode 属性无济于事。这是一篇关于 DesignMode 属性的文章:

http://dotnetfacts.blogspot.com/2009/01/identifying-run-time-and-design-mode.html

所以在过去我将DesignMode 属性与System.ComponentModel.LicenseManager.UsageMode 属性结合使用。

if (!this.DesignMode && System.ComponentModel.LicenseManager.UsageMode != LicenseUsageMode.Designtime)
{
     //insert code that you do not want to be performed at design time.
}

【讨论】:

  • 我的意思是,如果我在 Visual Studio 的属性窗口中设置值(ReadWriteDBValue),它会以类似 '' 我的目标是将值保存在 DB Only 中,而不将此属性添加到 Control Element
猜你喜欢
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
相关资源
最近更新 更多