问个血简单(对大虾来说)的问题,就当散分!
如何取DataGrid中HeaderTemplate里的控件
在DataGrid里设了一列CheckBox,HeaderTemplate里也有一个Checkbox,点HeaderTemplate里的全选
取别的用datagrid.Items(0).Cells(0).FindControl( "CheckBox ")可以,没方取页眉里的CheckBox
------解决方案--------------------up
------解决方案--------------------在ItemDataBound事件里面可以
if(e.Item.ItemType == ListItemType.Header)
{
e.Item.FindControl( "CheckBox ");
}
------解决方案--------------------在其他事件的话
datagrid.Items(0).Cells(0).FindControl( "CheckBox ")
只是表示第一个Item,不是表示Header
取Header要用别的方法
------解决方案--------------------private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
取控间的代码
}
}
------解决方案--------------------如果我理解的不错
你的问题确实有点点简单
你的目标是:
点HeaderTemplate里的全选(datagrid里其它同列的checkbox)
可是这样的?
------解决方案-------------------- 在RowItemBound事件里面判断:
if (e.Item.ItemType == ListItemType.Header)
{
CheckBox cb = (CheckBox)e.Item.FindControl( "CheckBox1 ");
}
------解决方案--------------------获取DataGrid页眉中的控件是不能通过DataGrid.Items[..].FindControl获取的,因为上述方式中Item自动不包含页眉
只能在ItemDataBound事件中,用e.cell[0].FoundControl,这个方式涵盖了DataGrid的页眉和页脚
------解决方案--------------------protected void 页眉中的CheckBox_CheckedChanged(object sender, EventArgs e)
{
foreach (DataGridItem thisItem in 你的Datagrid.Items)
{
((System.Web.UI.WebControls.CheckBox)thisItem.Cells[列数].Controls[1]).Checked = 页眉中的CheckBox.Checked;
}
}
我想这是你要的
------解决方案--------------------http://www.mastercsharp.com/article.aspx?ArticleID=81&&TopicID=2
这里有一遍文章和代码
------解决方案--------------------private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
取控间的代码
}
}
二
在RowItemBound事件里面判断:
if (e.Item.ItemType == ListItemType.Header)
{
CheckBox cb = (CheckBox)e.Item.FindControl( "CheckBox1 ");
}
------解决方案--------------------javascript 方法
function SelectAll(tempControl)
{
var theBox=tempControl;
xState=theBox.checked;
elem=theBox.form.elements;
for(i=0;i <elem.length;i++)
if(elem[i].type== "checkbox " && elem[i].id!=theBox.id)
{
if(elem[i].checked!=xState)
elem[i].click();
}
}
给HeaderTemplate的CheckBox加上 onclick= "SelectAll(this); "
给分吧~