正 文

ASP.NET中Web DataGrid的使用指南


www.7dspace.com  更新日期:2005-10-5 5:30:45  七度空间


5.1、DataGridItem

每一个DataGridItem就是DataGrid中显示的一行,其中包括:

Header DataGrid 控件的标题部分

Item DataGrid 控件中的项

AlternatingItem DataGrid 控件中的交替项

SelectedItem DataGrid 控件中的选定项(由SelectedIndex设置,通过SelectedItem属性或者Items[SelectedIndex]来读取)

EditItem DataGrid 控件中处于编辑状态的项(由EditItemIndex设置,通过Items[EditItemIndex]来读取)

Separator DataGrid 控件中项之间的分隔符

Footer DataGrid 控件的脚注部分

Pager DataGrid 控件的页选择节

注意,DataGrid的Items属性中不会包含Header、Footer、Pager这三类DataGridItem的。

5.1.1、DataGridItem的属性

ItemIndex —— 得到行在Items中的索引

ItemType —— 返回行的类型,也就是上面列出的Header、Item、...、Pager

Cells —— 返回行包含的所有TableCell(不管是显示声明的,还是自动生成的,不管是可以看见的,还是隐藏掉的),通过TableCell,可以读取Cell中显示的文本、包含的控件

严重注意:只有BoundColumn列和自动生成列,才可以通过TableCell.Text属性读取显示的文本。HyperLinkColumn、ButtonColumn、EditCommandColumn都需要将目标控件转换成相应的控件。

比如:
假设DataGrid的第一列声明如下

<asp:HyperLinkColumn DataTextField="au_id" HeaderText="au_id" DataNavigateUrlField="au_id" DataNavigateUrlFormatString="Edit.aspx?id={0}"></asp:HyperLinkColumn>

读取的时候可以用:

//Items[0]表示第一行,Cells[0]表示第一列,Controls[0]表示Cell中的第一个控件(也只有这个控件可以用)
HyperLink link = (HyperLink)DataGrid1.Items[0].Cells[0].Controls[0]);
Response.Write(link.Text);

至于模板列(TemplateColumn),当然也可以通过DataGrid1.Items.Cells[j].Controls[n]来获取,然后转换成原来的控件类型再操作,但是还有个更好的办法,就是用FindControl来查找控件。

FindControl是System.Web.UI.Control的方法,可以根据子控件ID来查找子控件

比如:
假设DataGrid的某一列声明如下

<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox Runat="server" ID="txtID" Text=<%# DataBinder.Eval(Container.DataItem,"au_id") %>>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>

读取方法:

TextBox txt = (TextBox)DataGrid1.Items[1].FindControl("txtID");
Response.Write(txt.Text);

注意:DataList中是没有Cell的

4页,页码:[1] [2] [3] [4] 

上一篇:两种添加数据到WEB DropDownList 控件的方法
下一篇:1166个巨量系统图标!
作者:Larmy888  来源:CSDN ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐