TABLE自动换行:
数字和英文的时候,TABLE中的TD就会被拉长,不会自动换行了。全角的时候是可以的。
解决方法是
添加<td style="word-break:break-all">
用表格做网页排版的时候,一般都能正常使用。偏偏有时会碰到一段连续的英文词或者一堆感叹号(!!!)把网页就撑开的现象:(
总结了一下,只要在CSS中定义了如下句子,可保网页不会再被撑开了。
table{table-layout: fixed;}
td(word-break: break-all; word-wrap:break-word;)
注释一下:
1.第一条table{table-layout: fixed;},此样式可以让表格中有!!!(感叹号)之类的字符时自动换行。
2.td{word-break: break-all},一般用这句这OK了,但在有些特殊情况下还是会撑开,因此需要再加上后面一句(word-wrap:break-word;)就可以解决。此样式可以让表格中的一些连续的英文单词自动换行。
posted @ 2007-12-07 10:56 Fernando 阅读(202) 评论(0) 编辑
ItemDataBound,ItemCreated的发生时间
ItemDataBound嘛,只要执行了DataBind方法,就会马上激发这个事件。
ItemCreated呢,如果页面是第一次访问 (Page.IsPostBack = false),那在第一次执行DataBind的时候,会先激发ItemCreated事件,也就是说,执行了DataBind后,首先会用 ItemCreated来建立Header行,然后用ItemDataBound来绑定Header行,再用ItemCreated来建立第一行,再调用 ItemDataBound来绑定第一行,也就是说ItemCreated和ItemDataBound是交替执行的。
页面返回时,也会执行ItemCreated事件,在Page_Load之前,但是这时候就不会再执行ItemDataBound事件了。
我们写程序的时候,一般都会有这个
Page_Load
if(!Page.IsPostBack)
{
DataGrid1.DataSouce = ..........;
DataGrid1.DataBind();
}
所以,在页面第一次加载的时候,我们是执行了这个ItemDataBound事件的。
但是当页面回发的时候,这个ItemDataBound事件就不再执行了。
众所周知,ViewState不会记住控件的事件,只会记住一些属性。
事件的恢复是根据InitializeComponent()这个方法来的。
所以,如果把DropDownList的事件注册,放到ItemDataBound方法里面,页面一个PostBack,事件马上丢失。
但是,如果把DropDownList的事件注册,放到ItemCreated方法里面,即使页面PostBack,事件也不会丢失,
因为Page_Load之前,重新调用了这个ItemCreated方法,这个方法是不受IsPostBack的限制的。
至此,这个问题就很清楚了。
但是,由于每次页面PostBack,都要执行ItemCreated方法,那么肯定会对效率有所影响。所以,我们能不能给出另外一种解决方法呢。戏子这个JR就提出,可以在编辑期间,就给这个DropDownList注册事件。
当然,在Grid模板列里面,点击这个DropDownList没有事件的那个闪电符号可以选择,但是我们可以改他的HTML
这样,我们就不用动态的给这个DropDonwList注册事件了
我们仅仅需要在ItemDataBound方法里面来绑定它的数据就可以了
ItemDataBound嘛,只要执行了DataBind方法,就会马上激发这个事件。
ItemCreated呢,如果页面是第一次访问 (Page.IsPostBack = false),那在第一次执行DataBind的时候,会先激发ItemCreated事件,也就是说,执行了DataBind后,首先会用 ItemCreated来建立Header行,然后用ItemDataBound来绑定Header行,再用ItemCreated来建立第一行,再调用 ItemDataBound来绑定第一行,也就是说ItemCreated和ItemDataBound是交替执行的。
页面返回时,也会执行ItemCreated事件,在Page_Load之前,但是这时候就不会再执行ItemDataBound事件了。
我们写程序的时候,一般都会有这个
Page_Load
if(!Page.IsPostBack)
{
DataGrid1.DataSouce = ..........;
DataGrid1.DataBind();
}
所以,在页面第一次加载的时候,我们是执行了这个ItemDataBound事件的。
但是当页面回发的时候,这个ItemDataBound事件就不再执行了。
众所周知,ViewState不会记住控件的事件,只会记住一些属性。
事件的恢复是根据InitializeComponent()这个方法来的。
所以,如果把DropDownList的事件注册,放到ItemDataBound方法里面,页面一个PostBack,事件马上丢失。
但是,如果把DropDownList的事件注册,放到ItemCreated方法里面,即使页面PostBack,事件也不会丢失,
因为Page_Load之前,重新调用了这个ItemCreated方法,这个方法是不受IsPostBack的限制的。
至此,这个问题就很清楚了。
但是,由于每次页面PostBack,都要执行ItemCreated方法,那么肯定会对效率有所影响。所以,我们能不能给出另外一种解决方法呢。戏子这个JR就提出,可以在编辑期间,就给这个DropDownList注册事件。
当然,在Grid模板列里面,点击这个DropDownList没有事件的那个闪电符号可以选择,但是我们可以改他的HTML
这样,我们就不用动态的给这个DropDonwList注册事件了
我们仅仅需要在ItemDataBound方法里面来绑定它的数据就可以了
posted @ 2007-12-07 09:45 Fernando 阅读(228) 评论(0) 编辑

