注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 CCIE-Lab考试将新增10分钟..
 帮助

DataGrid Web Control 连载之二


2006-03-23 22:19:00
 标签:datagrid web   [推送到技术圈]

      这个系列是在开发过程中对遇到的技术问题的一个总结,当时对这个控件的了解不是很多,但是根据需要实现的功能,不得不查阅N多资料,在MSDN文档中只有英文的说明,我整理并翻译了出来,在此和大家一起分享。转载请加此连接http://august.blog.51cto.com,谢谢!
     默认情况下,DataGrid控件自动调整行和列,使它们适应你指给它的全部的高度和
宽度。在全部宽度内,它根据列头的文本来控制列的宽度。所有数据默认都是左对齐
的。
     为控制列的特性,应该关闭“自动生成列”属性——将AutoGenerateColumns属性置
为false.在实际的使用中,只有在Short—termuses,如quick proof-of concept pages 或者演示的时候,才将该属性设为True.对于生成应用程序而言,你应该默认添加列,每个列可以是绑定列或者模板列。
     为了控制某个列宽,可以为该列产生一个样式元素(style-element)然后将元素的宽度属性设为标准单位,下面给出了一个项样式的width属性设置的HTML代码:
  <asp: BoundColumn DataField=”title”SortExpression=”title”
       Header Text=”Title”>
     <ItemStyle Width=”100px”></ItemStyle>
  </asp:BoundColumn>
注:可以将ItemStyle-Width=”100px”写入Boundolumn中。
          你可以使用样式元素设置对齐方式,将其设为“左”、“右”或者其它在“水平对齐”集合中定义的值(在VS中,每个单独的列对齐方式是可见的)
下面是一个例子:
  <asp: BoundColumn DataField=”title” SortExpression=”title”
       HeaderText=”Title”>
     <ItemStyle Width=”100px”HorizontalAlign=”Right”></ItemStyle>
  </asp:BoundColumn>
     你还可以使用样式元素设定列的高度,你很可能会觉得这没有设定宽度灵活,因为设定某一列的高度也就设定了全部列的高度。
     你也可以在运行时通过代码设定宽度,采取这种方式的一个例子就是ItemGreated事件句柄,下面的例子将前两列分别设定为100和50像素。
//C#
 Private void DataGrid-ItemCreated(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 e.Item.Cells[0]Width=new Unit(100);
 e.Item.Cells[1].Width=new Unit(50);
}
当然,将这些可以在设计时就设置好的宽度值通过代码来设置几乎没有任何意义。一般情况下,你可能只是想要基于运行时的值来设定宽度而采取这种方法,你可以将单元格控件的宽度设为标准的单位(往往是像素)。但是,它并不直接将这些长度数据转化为像素——这些仅仅是字符数。然而,当你创建一个项的时候,可以使用这些数据来检查。




    文章评论
 
2007-08-22 22:10:43
难得的好文章,辛苦了。。
DataGrid技术解决了web页面中显示排序等问题。不知道是否有免费的。。

2007-08-23 21:40:11
三年前翻译的东东,终于得到了zhimin同志的支持啊,呵呵,安慰

2008-01-11 16:42:57
真是太谢谢楼主了!! !!深圳朋友

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: