table的宽度,单元格内换行问题

来源:互联网 发布:龙视安监控软件下载 编辑:程序博客网 时间:2024/04/30 14:54
table的宽度,单元格内换行问题    chnking(原作)

一.     要想固定table的总的宽度和每列的宽度:>>
> >
<TABLE id="Table1" style="TABLE-LAYOUT:fixed" border="1">>>
或在脚本中:>>
this.style.tableLayout = fixed>>
> >
HTML>>
{ table-layout : sLayout } >>
Scripting>>
object.style.tableLayout [ = sLayout ]>>

>>
可能的值:>>
> >
sLayout>>
String 设置或获取下面的值: >>
auto>>
缺省设置. 列宽将设置为不可分割的最大的内容的宽度。>>
fixed>>
表的宽度和列的宽度固定,不随单元格中内容而改变>>
一.     设置了各个列的宽,没有设表的宽:表的宽度等于各个列的宽度的和>>
二.     设置了表的宽度,没有设各个列的宽度:各个列的宽度平均分配>>
三.     要是都没设置宽度:表的宽度为100%,各个列的宽度平均分配>>
>>
> >
二.     换行问题>>
<td>有个attribute 叫 NOWRAP,可以控制每个单元格是否允许换行>>
> >
<TD nowrap=true>>>
或者>>
this.noWrap = true>>
> >
HTML>>
<ELEMENT NOWRAP ... > >>
Scripting>>
object.noWrap [ = bWrap ]>>
可能的值:>>
bWrap>>
Boolean 设置或获取一个下面的值:. >>
false>>
缺省值. 允许单元格的单词字符回行.>>
true>>
不允许单元格回行,除非字符中含有”<br>”>>
>>
> >
Asp.net的DataGrid有个问题,它的Column有个属性ItemStyle.Wrap,设计是当这个列的ItemStyle.Wrap属性为true时,单元格允许回行,为false不允许回行,可是当设置了为false时输出到客户端的是这样的:>>
<td nowrap=”nowrap”>  >>
而不是>>
<td nowrap=”true”>>>
所以ItemStyle.Wrap属性是没有起作用的,请自己手工在DataGrid1_ItemDataBound事件中将不允许回行的那些单元增加个Attribute: nowrap=true。>>
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)>>
{>>
e.Item.CellsNo.Attributes.Add("nowrap"," true ") ;>>
}>>
> >
三.     截断英文单词强行回行>>
上面两个方法可以把表格的宽度都固定了,每个单元是否允许回行都可以设定了,现在可能又会碰到一个问题,当允许回行的遇到比较长的英文单词,可能就超出了这个单元格的宽度,要是不把这个单词从中截断强行换行的话,这个单词的超出单元格宽的的部分将不被显示出来。所以需要在单词超出单元格长度的地方把单词强行截断回行。>>
可以利用css中的word-break 风格来达到我们的目的:>>
> >
<TABLE id="Table1" style="TABLE-LAYOUT:fixed;word-break:break-all" border="1">>>
或在脚本中:>>
this.style. wordBreak = break-all>>
> >
HTML>>
{ word-break : sBreak } >>
Scripting>>
object.style.wordBreak [ = sBreak ]>>
可能的值:>>
sBreak>>
String设置或获取一个下面的值: >>
normal>>
缺省值. 允许从每个词处回行。>>
break-all>>
不管在什么位置,超过列宽时就回行。>>
keep-all>>
不允许 Chinese, Japanese, 和 Korean 回行。这个功能类似与“normal” 的非亚洲语言版本。