后台的代码
private void drBudgetList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
CheckBox cbBt;if(e.Item.ItemType == ListItemType.AlternatingItem)
{
cbBt = (CheckBox)e.Item.FindControl("cbFirst");
cbBt.CheckedChanged += new EventHandler(chkFirstHalf);
}
}
页面里面的checkbox
<asp:CheckBox id=cbFirst runat="server" AutoPostBack="True" Checked='<%# GetCheckBoxStatus(DataBinder.Eval(Container, "DataItem.ba_Flag").ToString(), "1") %>'>
</asp:CheckBox>
现在我遇到这么个问题每次create好以后
我点datagrid里面 单数行的checkbox 都能进入chkFirstHalf这个方法里面
可是双数行就不行了 想问 这是什么原因
谢谢了
这里粘贴错了
是这样的 请教各位啦if(e.Item.ItemType == ListItemType.Item)
if((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem))
这个试过了 不行e.Item.ItemIndex!=-1 ??? 这句应该加在哪里啊?
switch(e.Item.ItemType)
{
case ListItemType.Item:
goto case ListItemType.AlternatingItem;
case ListItemType.AlternatingItem:
//添加代码
break;
}
for(int i=0;i<this.DataGrid1.Items.Count;i++)
{
if(((CheckBox)DataGrid1.Items[i].FindControl("chkExport")).Checked)
{
if(MR_No==null)
MR_No=this.DataGrid1.DataKeys[(int)this.DataGrid1.Items[i].ItemIndex].ToString();
else
MR_No=MR_No+","+this.DataGrid1.DataKeys[(int)this.DataGrid1.Items[i].ItemIndex].ToString();
}
}