ASP.NET中Web DataGrid的使用指南(3)
点击次数:29 次 发布日期:2008-11-26 12:35:47 作者:源代码网
|
源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 e.Item.Cells[0].ColumnSpan = 2; 源代码网推荐 源代码网推荐 e.Item.Cells[0].Text = "大类1</td><td>大类2</td></tr><tr><td>" + e.Item.Cells[0].Text; 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 用这个方法可以为任意添加新行。 源代码网推荐 源代码网推荐 2、设置绑定列或者自动生成列的编辑框宽度 源代码网推荐 源代码网推荐 请在你的ItemDataBound事件中加入一下代码: 源代码网推荐 源代码网推荐 if (e.Item.ItemType == ListItemType.EditItem) 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 for (int i = 0; i < e.Item.Cells.Count; i++) 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 TextBox txt = (TextBox)e.Item.Cells.Controls[0]; 源代码网推荐 源代码网推荐 txt.Width = Unit.Pixel(50); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 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) 源代码网推荐 源代码网推荐 { 源代码网推荐 源代码网推荐 //.... 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
