【问题标题】:Lower-case all text in a datatable, or lower-case all text on a page to use css text-transform: capitalize?小写数据表中的所有文本,或小写页面上的所有文本以使用 css text-transform: 大写?
【发布时间】:2013-02-28 07:37:31
【问题描述】:

我遇到了 CSS 无法在已经大写的文本上使用 text-transform: capitalize 的问题。不幸的是,从我的数据库返回的文本在很多情况下都是大写的。与其在我从数据库请求的每个字段之前放置一个LOWER(X),或者在每个字段上调用一个 JS 函数,不如使用只针对返回的整个数据表的解决方案似乎更容易,并且然后在页面的 CSS 中使用text-transform: capitalize

有什么简单的方法可以做到这一点吗?或者,一种将页面上的所有文本(也许是JS?)作为目标并将其小写,然后让CSS部分重新大写的方法就可以了。我正在寻找最简单的解决方案,不管是什么(重写大量查询根本不是。)

【问题讨论】:

  • 您可以为 .ToUpper()、.ToLower 使用一些内置功能,或者您可以编写自己的 ToProperCase 我在上一个项目中写过一个,但不幸的是我没有代码与我一起。你看过using Microsoft.VisualBasic``namespace 看看是否有一个ProperCase 函数.. 看看运行一个SWL Server Function 它将ProperCase 你在数据库或特定字段中的所有数据
  • Ben,你想看一些关于如何使用 SQL 来做到这一点的例子吗?
  • ToUpper 和 ToLower 存在必须在字段级别调用它们的问题。 DJ:我知道如何在 select 语句中执行 LOWER(X) - 它在原始问题中已说明。 :) 但是,如果您知道一种方法可以对所有返回的字段执行一揽子 LOWER,那将很有用。
  • Ben 你要返回多少个字段..?你能展示一个在你原来的问题中编辑的例子吗?我有一些我刚刚用“为国王和国家”测试过的东西,例如返回“为国王和国家”我会发布它,你可以测试它,也可以玩弄你仍然需要写一点的代码代码,但我很想看看/知道您正在处理多少个领域
  • 数据应该总是在插入数据库之前进行规范化。如果您已经获得格式不正确的数据,请在从数据库中取出时对其进行规范化。

标签: c# javascript asp.net css


【解决方案1】:

你可以对你的 DataTable 使用这个 Select Query 您将需要根据您的表格调整字段。我只使用 1 个名为 DESC

的字段名称来显示此内容
select
    DESC =
    -- Adjust the length of your filed(s) for example DESC is varchar(500)
    convert(varchar(500),
    upper(substring(DESC,1,1))+
    lower(substring(DESC,2,499)))
from
    YouTable Name

【讨论】:

  • DJ:这是一种行之有效的方法。 ToLower() 也可以工作,就像 SQL 查询本身中的 LOWER(x) 一样;我从来没有关于如何定位单个变量的问题,因为我知道如何并且在实践中已经做到了。我的问题是,是否有一种方法可以使用命令,无论是在 SQL 查询中、针对数据表还是针对整个页面文本,都可以一次性完成所有操作。根据对问题的回答,似乎没有办法做到这一点。考虑到这一点,我将编辑 SQL 查询作为最简单的方法。
  • 我有一个查询,你可以针对你的数据表运行我会在一秒钟内回答
【解决方案2】:

使用 CSS 来做到这一点是不正确的。小写数据库中的内容,无论是否容易。

【讨论】:

    【解决方案3】:

    最简单的方法是更改​​数据库中的数据,使您没有大写的字符串,并让 CSS 来做。无论如何,仅在 JS/CSS 上做这件事是不可行的。

    【讨论】:

    • 我无法更改数据库中的数据——这只是众多应用程序中的一种,无论出于何种原因,写入数据的应用程序都是大写的。
    • 你在数据库请求中LOWER()ing你的字段,恐怕 - 这比在每个客户端浏览器上这样做更有效(由于缓存等服务器端)
    • 这听起来像是一个完全糟糕的设计/应用程序 Ben.. 好好使用内置功能转换/显示数据以适当的大小写
    • DJ KRAZE:我不反对。然而,我是公司的新手,所有这些在我到达之前很久就已经到位。我只是想找出处理这种情况的最有效方法。如果需要的话,我可以重写我所有的 SQL 查询,但首先确保这是必要的似乎比在思考“如果只是”的同时做繁重的工作更好。 :) 我也不清楚为什么这个问题被否决了;我在问题中明确表示我知道如何使用 LOWER(x) 并且正在寻找更好的解决方案。没有人不是一个坏问题。
    • 你有没有想过尝试做 ToTitleCase ?我会快速测试一些东西,然后给你发一个方法
    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2013-02-18
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多