文本框在ASP.Net页面上给出问题

时间:2008-09-24 09:11:58

标签: asp.net

我正在设计一个添加/编辑用户的页面 - 我使用了一个转发器控件和一个表来显示用户。在用户视图中,表行的各列具有显示记录值的标签,当用户单击编辑按钮时,标签将被隐藏,并显示文本框供用户编辑值 - 问题是 - 文本框一旦显示可见,表格大小增加 - 行高和单元格大小变大。有没有办法显示文本框,以便它们采用与标签相同的大小

2 个答案:

答案 0 :(得分:1)

处理表格时,问题是:您的标签可以跨越多个文本行(即:您可以拥有长文本)吗?如果是,您可能会遇到布局问题。如果不是,一个简单的方法就是创建一个CSS类:


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

使用您首选的单元格宽度/高度。跟你的身高保持一点“大”。

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

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

答案 1 :(得分:0)

我会使用JS + CSS ......但是你必须亲自动手。 Visual Studio对您没有多大帮助。

我是这样做的:

  1. 获取<td> clientWidth和clientHeight。
  2. <td>的宽度和高度设置为那些px值(因此它们不再相对)
  3. 交换输入的文字
  4. 在CSS中,确保输入没有填充/边距/边框并设置宽度:100%,line-height:1em和height:1em
  5. 当您切换回来时,请确保取消设置<td>宽度和高度,以便它们返回自动值。

    你需要稍微调整一下。我确定你必须使用<td>上的填充,并设置溢出:隐藏,但你应该能够做你想做的事。