分享
 
 
 

关于DataGrid Web控件的热门问题__连载之一

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

关于DataGrid Web控件的热门问题

文章译自在工作过程中遇到的实际问题,而查的MSDN,当时没有找到中文资料,网上关于此方面的实用的资料也不多,有心收集下来并翻译,在此与大家交流,欢迎批评指正:zyfly0808@hotmail.com

内容——

序言:Windows窗体&Web窗体中的DataGrid控件

①.控制列的宽度、高度和对齐方式。

②.制定列的显示和编辑模式外观。

③.格式化日期、货币和其它数据。

④.动态显示和隐藏列。

⑤.动态增加列。

⑥.用DataGrid控件向数据源添加一条记录。

⑦.在编辑模式下显示一个下拉列表。

⑧.用CheckBox选择多个Items.

⑨.一次编辑多行。

⑩.单击任何地方选中该行。

简介

DataGrid服务器控制是从数据源显示信息的强有力的工具,使用简单。你可以只通过设定一些属性就可以显示可编辑的数据,并且使其具有专业的外观,同时,它还具有非常复杂的对象模型,为你展示数据提供了很大的灵活性。

这篇文章重点讲解了在NewsGroup网络和其它的开发人员的论坛里经常问到的关于制定DataGrid的显示的问题。这里所讨论的有些问题是很简单的,但有时也有些令人迷惑,在这种情况下,他们提出了这一问题——如何掌握DataGrid控件的基本功能。

文章假设你已经熟悉该控件——怎样将它添加到一个窗体以及如何设置它来显示数据。你还要知道怎样将它的一行变成可编辑模式和其它的基本任务。最终,你将会发现掌握如何使用模板——向DataGrid中添加模板列以及在模板中展示控件——是十分有帮助的。

序言:Windows窗体&Web窗体中的DataGrid控件。

Web窗体中的DataGrid控件并不是Windows窗体中该控件的等价物,通常认为它们是同一种控件,至少具有相同的功能。但是,Web窗体的整个编程Paradigm和Windows窗体有着很大的不同,举个例子来说,Web窗体页面的每一次处理过程都要回传到服务器,它们必须维护状态,而且具有非常不同的数据绑定模型,如此等等。

正是由于这些不同,使得它们在各自的控件方面也有着很大的差异,包括DataGrid控件,一般来说,Web窗体DataGrid控件的内置属性要少一些,下面列出了几个不同之处:①.不继承支持主——从数据结构。

②.和其它Web服务器控件一样,它不支持双向的数据绑定。如果你想更新数据,必须要自己写代码。

③.一次只能编辑一行。

④.并不继承性也支持排序,尽管你可以通过处理它激发的事件来对网格的内容排序。

另一方面:

①.你可以将Web窗体DataGrid控件绑定到任何支持IEnumerable接口的对象上。

②.Web窗体DataGrid控件支持分页。 ③.与Windows窗体DataGrid相比,我们更容易规范Web窗体DataGrid的外观和数据的输出。

一.控制列宽度、高度和对齐公式。

默认情况下,DataGrid控件自动调整行和列,使它们适应你指定给它的全部

的高度和宽度。在全部宽度内,它根据列头的文本来控制列的宽度。所有数据默

认都是左对齐的。

为控制列的特性,应该关闭“自动生成列”属性——将AutoGenerateColumns属性置为False.在实际的使用中,只有在短期应用,如快速浏览页面或者演示的时候,才将该属性设为True.对于生成应用程序而言,你应该默认添加列,每个列可以是绑定列或者模板列。

为了控制某个列的宽度,可以为该列产生一个样式元素(style-element)然后将元素的宽度属性设为标准单位,下面给出了一个项样式的width属性设置的HTML代码:将元素的宽度属性设为标准单位,下面给出了一个项样式的width属性设置的HTML代码:

<asp: BoundColumn DataField=”title”SortExpression=”title”

<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);

}

当然,将这些可以在设计时就设置好的宽度值通过代码来设置几乎没有任何意义。一般情况下,你可能只是想要基于运行时的值来设定宽度而采取这种方法,你可以将单元格控件的宽度设为标准的单位(往往是像素)。但是,它并不直接将这些长度数据转化为像素——这些仅仅是字符数。然而,当你创建一个项的时候,可以使用这些数据来检查。

(unfinished)

③.与Windows窗体DataGrid相比,我们更容易规范Web窗体DataGrid的外观和数据的输出。

一.控制列宽度、高度和对齐公式。

默认情况下,DataGrid控件自动调整行和列,使它们适应你指定给它的全部

的高度和宽度。在全部宽度内,它根据列头的文本来控制列的宽度。所有数据默

认都是左对齐的。

为控制列的特性,应该关闭“自动生成列”属性——将AutoGenerateColumns属性置为False.在实际的使用中,只有在短期应用,如快速浏览页面或者演示的时候,才将该属性设为True.对于生成应用程序而言,你应该默认添加列,每个列可以是绑定列或者模板列。

为了控制某个列的宽度,可以为该列产生一个样式元素(style-element)然后将元素的宽度属性设为标准单位,下面给出了一个项样式的width属性设置的HTML代码:将元素的宽度属性设为标准单位,下面给出了一个项样式的width属性设置的HTML代码:

<asp: BoundColumn DataField=”title”SortExpression=”title”

<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);

}

当然,将这些可以在设计时就设置好的宽度值通过代码来设置几乎没有任何意义。一般情况下,你可能只是想要基于运行时的值来设定宽度而采取这种方法,你可以将单元格控件的宽度设为标准的单位(往往是像素)。但是,它并不直接将这些长度数据转化为像素——这些仅仅是字符数。然而,当你创建一个项的时候,可以使用这些数据来检查。

(unfinished)

③.与Windows窗体DataGrid相比,我们更容易规范Web窗体DataGrid的外观和数据的输出。

一.控制列宽度、高度和对齐公式。

默认情况下,DataGrid控件自动调整行和列,使它们适应你指定给它的全部

的高度和宽度。在全部宽度内,它根据列头的文本来控制列的宽度。所有数据默

认都是左对齐的。

为控制列的特性,应该关闭“自动生成列”属性——将AutoGenerateColumns属性置为False.在实际的使用中,只有在短期应用,如快速浏览页面或者演示的时候,才将该属性设为True.对于生成应用程序而言,你应该默认添加列,每个列可以是绑定列或者模板列。

为了控制某个列的宽度,可以为该列产生一个样式元素(style-element)然后将元素的宽度属性设为标准单位,下面给出了一个项样式的width属性设置的HTML代码:将元素的宽度属性设为标准单位,下面给出了一个项样式的width属性设置的HTML代码:

<asp: BoundColumn DataField=”title”SortExpression=”title”

<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);

}

当然,将这些可以在设计时就设置好的宽度值通过代码来设置几乎没有任何意义。一般情况下,你可能只是想要基于运行时的值来设定宽度而采取这种方法,你可以将单元格控件的宽度设为标准的单位(往往是像素)。但是,它并不直接将这些长度数据转化为像素——这些仅仅是字符数。然而,当你创建一个项的时候,可以使用这些数据来检查。

(unfinished)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有