【问题标题】:How to calculate min width for a circle using stored procedure如何使用存储过程计算圆的最小宽度
【发布时间】:2013-09-18 08:06:02
【问题描述】:

我试图在气泡中显示我的结果百分比。

我已使用以下存储过程为绑定在数据列表中的 div 设置 css 样式(宽度、高度、字体大小以将其显示为气泡)。

Select 
    *,
    'width: '+cast(@maxWidth*(CountItemPercentage/100) as varchar(max)) +'px; height: '+cast(@maxWidth*(CountItemPercentage/100) as varchar(max)) +'px; font-size: '+cast(@maxWidth*((CountItemPercentage/100)/5) as varchar(max)) +'px;' as CSSStyle
from 
    @temp

我已将最大宽度设置为 300 像素。

现在我的问题是,如果百分比低于 10%,则气泡太小而无法看到。如何使用存储过程设置 div 的最小宽度以使其清晰可见?

提前致谢

【问题讨论】:

  • 不完全确定你的意思,但 CSS 也有“min-width: 50px;”属性
  • 代码看起来有点奇怪,但从逻辑上讲,我认为你想要像Math.Max(calculatedWidth, @maxWidth / 10) 这样的东西,它返回两者中较大的一个。
  • 除非您有一些疯狂的限制,否则我强烈建议您将CountItemPercentage 简单地返回到Web 层,并使用您的Web 技术或javascript 来设置样式。将 UI 逻辑放在数据层有悖于关注点分离原则。

标签: c# jquery asp.net sql


【解决方案1】:

我不知道您为什么要这样做,但我相信每个客户/项目都有他的需求。除此之外,您还可以使用这样的 CASE 语句:

--Set the minimum width percentage DECLARE @MinWidthPercentage as int; set @MinWidthPercentage = 10;

SELECT (CASE
    WHEN CountItemPercentage < @MinWidthPercentage THEN 'width: ' + cast(@maxWidth*(MinWidthPercentage /100) as varchar(max)) + 'px; height: ' + cast(@maxWidth*(MinWidthPercentage /100) as varchar(max))
+ 'px; font-size: ' + cast(@maxWidth*((MinWidthPercentage /100)/5) as varchar(max)) +'px;'
    ELSE 'width: '+cast(@maxWidth*(CountItemPercentage/100) as varchar(max)) +'px; height: '+cast(@maxWidth*(CountItemPercentage/100) as varchar(max)) +'px; font-size: '+cast(@maxWidth*((CountItemPercentage/100)/5) as varchar(max))
+'px;') AS CSSStyle  from @temp

或者您可以在开头使用 if 来设置 @percentage 变量并使用该变量而不是 CountItemPercentage。

【讨论】:

    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 2013-05-26
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    相关资源
    最近更新 更多