日期:2014-05-17  浏览次数:20416 次

asp:TextBox 设置TextMode="MultiLine" 宽度为100%时,当Text字符超过它的行宽就自动拉大了宽度,求高手帮忙看看
设置布局是这样的在一个1024px宽度内有一个MultiLine类型的TextBox,
如图1:

 拖一个asp:TextBox,ID为txt_Material,宽度设置100%,高度设置50px,类型设置MultiLine

运行并从数据库中取一条记录,显示出来,
如图2:

 当原料编码输入完后,自动触发从数据库取得相关记录,并把描述显示到,上面asp:TextBox类型设置为MultiLine那个内显示,第二个图,取得的记录描述是没有超过txt_Material的宽度的,所以没有出现整个Table跳行现象,

 下面问题来了,当从取出的记录描述长度超过txt_Material的宽度的时就出现跳行现象,便得整个网页都错位了,
如下图


发现了问题:
1/当取出来的记录长度超过txt_Material的宽度的时,txt_Material的宽度会自动增加了一些宽度,


提出几个问题:
1/怎样做才能让txt_Material在宽度设置100%时不会,数据超过宽度而它不会自动增加一些宽度,
2/有什么办法可以锁定他的宽度,不给他自动增加,
3/当把它宽度设置固定值时,在一个px之间要么比其它列位小许多,要么又出现跳行,这个设置有什么技巧性,我一直设置不了合适的,

出现如下图:

宽度设置了318px
<td rowspan="2" colspan="3">
<asp:TextBox ID="txt_Material" runat="server" Height="50px" TextMode="MultiLine"
Width="315px"></asp:TextBox> </td>

而下图设宽度设置了319px
<td rowspan="2" colspan="3">
<asp:TextBox ID="txt_Material" runat="server" Height="50px" TextMode="MultiLine"
Width="319px"></asp:TextBox> </td>


如果,设置固定值,应该怎样才能设置它能够对齐其它栏位??











------解决方案--------------------
你设置td的宽度之后,Textbox可以设置100%,它的容器必须设置固定的值,
------解决方案--------------------
对齐,你应该控制table中所有td的宽度为固定值,不然,td会随里面内容的长度变化而变化
------解决方案--------------------
设置textbox的rows属性
------解决方案--------------------
把宽度Width="100%",设置为:width="85px" 固定宽度
------解决方案--------------------
一般的textbox生成后会有5像素的padding值,而TextBox multiline没有,所有你多设置5像素应该就好了