正 文

ASP.NET中Web DataGrid的使用指南


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


3、处理在DataGrid中的DropDownList的事件

DropDownList没有CommandName属性,所以不能用ItemCommand事件,不过你可以这样试试:

在DataGrid的模板列中加入的DropDownList控件

<asp:DropDownList runat="server" id="ddl" AutoPostBack="True" OnSelectedIndexChanged="ddl_SelectedIndexChanged" />

然后你在.aspx.cs中加入一个函数

protected void ddl_SelectedIndexChanged(object sender, System.EventArgs e) //一定要声明成protected或者public,不能是private的。
{
//在这里就可以加入其他代码
}

3.1、在上面的事件中怎样得到本行其他Cell的值呢?

我们知道,DataGrid完全是一个Table结构的控件,DataGrid包含DataGridItem,每个DataGridItem又包含TableCell,那么,我们就可以在TableCell的某个控件中,利用控件的Parent来得到TableCell,再利用TableCell的Parent,就可以得到DataGridItem了。

protected void ddl_SelectedIndexChanged(object sender, System.EventArgs e) //一定要声明成protected或者public,不能是private的。
{
DropDownList ddl = (DropDownList)sender;
TableCell cell = (TableCell)ddl.Parent;
DataGridItem item = (DataGridItem)cell.Parent;
Response.Write(item.Cells[0].Text);
}

4、怎样得到Header、Footer、Pager里的控件

方法一:在ItemCreated或者ItemDataBound中,具体代码就不在多写了

方法二:遍历DataGrid的所有Item(注意,不是遍历DataGrid1.Items下的Item)

foreach (DataGridItem item in DataGrid1.Controls[0].Controls)
{
if (item.ItemType == ListItemType.Header)
{
//用item.FindControl查找相应的控件
}
}

大家可能会注意到,这里有个DataGrid1.Controls[0].Controls,这表示,DataGrid1下,有一个子控件,这个子控件是DataGridTable类型,他下面才是DataGridItem集合

在DataList中,下面的子控件直接就是DataListItem了,而没有Table:

foreach (DataListItem item in DataList1.Controls)
{
//....
}
4页,页码:[1] [2] [3] [4] 

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

热 点 导 读
特 别 推 荐