日期:2014-05-19  浏览次数:20480 次

问个血简单(对大虾来说)的问题,就当散分!
如何取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); "

给分吧~