文本框给ASP.Net页上的问题

时间:2020-03-06 14:39:02  来源:igfitidea点击:

我正在设计一个用于添加/编辑用户的页面,我使用了一个转发器控件和一个表来显示用户。在用户视图中,表行的各个列都有标签以显示记录值,并且当用户单击"编辑"按钮时,标签被隐藏,并且显示了文本框供用户编辑值。 ,表格大小会增加行高,并且单元格大小会变大。有没有一种方法可以显示文本框,使其与标签的大小相同

解决方案

我将使用JS + CSS ...不过,我们必须为此弄脏双手。 Visual Studio不会对我们有太大帮助。

这是我的处理方式:

  • 获取<td>clientWidth和clientHeight。
  • 将<td>的宽度和高度设置为这些px值(因此它们不再是相对的)
  • 交换输入文字
  • 在CSS中,确保输入没有填充/边距/边框,并设置width:100%,line-height:1em和height:1em

当我们切换回去时,请确保取消设置&lt;td>的宽度和高度,以便它们返回自动值。

我们需要对此进行一些微调。我敢肯定,我们将不得不使用<td>上的填充,并可能设置了overflow:hidden,但是我们应该能够做我们想做的事情。

处理表格时,问题是:标签可以跨多个文本行吗(即:我们可以有长文本)吗?如果是,我们可能会以任何方式遇到布局问题。如果没有,则可以使用一种简单的方法来创建CSS类:

.CellContent { display:block; width: ...; height: ...; }

与我们首选的单元格宽度/高度。只是保持身高有点"大"即可。

将类分配给标签和文本框,切换控件时,宽度/高度不应更改(由于display:block属性)。

同样,如果文本较长,我们仍然会遇到问题,可能需要使用多行。在这种情况下,我建议忽略高度问题:将宽度设置为一致,并始终显示3-4行的文本框进行编辑。如果用户准备键入长文本,则不会理会他们看到行高的变化。