【问题标题】:How to get the width property of a control in code behind ASP.NET如何在 ASP.NET 后面的代码中获取控件的宽度属性
【发布时间】:2011-12-27 16:22:19
【问题描述】:

有没有办法在后面的代码中获取控件的宽度属性?我需要向面板添加动态控件,并使宽度比面板小 20px。所以我试图在 Page_Load 事件中执行此操作,但 width 属性不是整数或字符串。

【问题讨论】:

  • 你的意思是css样式属性吗?
  • 并非所有控件都有 Width 属性。您要创建哪些动态控件?
  • 我设置的不是css宽度,而是属性宽度。我动态创建文本框、面板、下拉列表、单选按钮、复选框控件。

标签: asp.net web-applications


【解决方案1】:

宽度属性是单位类型。您可以使用以下方式以编程方式设置值:

yourControl.Width=new Unit("20 px");

请看这里:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.unit.aspx

【讨论】:

  • @lcarus 谢谢,我知道它是如何工作的,但是有什么方法可以获取 width 属性而不是设置它?
  • 这就是 Width 属性的 Value 和 Type 属性的用途。您应该能够通过执行以下操作来获取长度和类型: control.Width.Value 和 control.Width.Type 。检查我链接的文档。
  • @lcarus 谢谢,我轻而易举地快速掌握了这一点。
【解决方案2】:
Double myPanelWidth = myControlPanel.Width.Value; 

这会给你一个双倍的宽度。

那么你可以这样做:

myControl.Width.Value = myPanelWidth - 20;

【讨论】:

  • @Algorythm 谢谢,我在页面上放置了一个面板,将属性设置为 250px,并且在后面的代码中使用了您的建议,效果很好。但我将您的代码切换到 myControl.Width.Value
  • @Icarus:修复了!是的,我把顺序搞砸了。谢谢!
  • @algorhythm 而且属性的大小写也是错误的;您的代码无法编译。
【解决方案3】:

这是一种通过代码设置宽度的简单方法,如您所解释的,但也考虑了单位类型:

Dim dblTargetWidth As Double = pnlMyPanel.Width.Value - 20
ctrlMyControl.Width = New Unit(dblTargetWidth, pnlMyPanel.Width.Type)

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 2011-08-26
    • 2011-07-03
    • 2011-02-15
    • 1970-01-01
    • 2011-06-12
    • 2010-10-24
    相关资源
    最近更新 更多