|
主题: 关于在中DataGrid删除前确认的问题(急)
|
 cmoonc
职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2004/4/24 18:07:05
|
#12005/4/7 12:02:49
问题:在DataGrid中使用了ButtonColumn删除命令,希望在删除前能弹出提示框确认. 要点: 1. void del(Object sender,DataGridCommandEventArgs e) { Button db=(Button)e.Item.Cells[6].Controls[0]; //前后代码省略 db.Attributes.Add("onClick","return confirm('你确定要删除该记录?')"  ;//此代码应放在Page_Load里,但ButtonColumn里无法使用ID,所以放在此处但第一次点击无效第二次以后才能生效! } 2. <asp  ataGrid AllowPaging="true" AutoGenerateColumns="false" ID="dg" runat="server" OnUpdateCommand="update" OnEditCommand="edit" OnPageIndexChanged="index" OnCancelCommand="cancel" OnItemCommand="del" > <asp:ButtonColumn Text="DEL" ButtonType="PushButton" CommandName="del" /> //DataGrid中的设置如上 不知道大家有什么好的方法解决这个问题??
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#22005/4/7 12:20:34
db.Attributes.Add("onClick","return confirm('你确定要删除该记录?')");
应该加在DataGrid_ItemCreated
|
 cmoonc
职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2004/4/24 18:07:05
|
#32005/4/7 14:14:05
试了N次,我实在是搞不定了,哪位高手把完整代码(C#)发一下,万分感谢!!!!!!!
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#42005/4/7 14:19:19
你加在del函数里面,首先要回发到服务器才会执行,当然不行.应该在在DataGrid显示到客户端之前就加上.也就是DataGrid的ItemCreated事件中
|
 cmoonc
职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2004/4/24 18:07:05
|
#52005/4/7 15:39:29
在程序中加入: void DataGrid_ItemCreated(object sender,DataGridItemEventArgs e) { Button bt=(Button)e.Item.Cells[6].Controls[0]; //这行出错!! bt.Attributes["onClick"] = "return confirm('Are you Delete?')"; } 并将DataGrid中也改为OnItemCreated="DataGrid_ItemCreated" 但还是不行,程序出错: "指定的参数已超出有效值的范围。参数名: index 类的成员"
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#62005/4/7 16:14:50
不需要OnItemCreated="DataGrid_ItemCreated" 已经在InitializeComponent()说明了
|
 cmoonc
职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2004/4/24 18:07:05
|
#72005/4/7 17:35:18
如果把OnItemCreated="DataGrid_ItemCreated"去掉,是不出错了,也能运行了,可删除前确认的功能却失效了!
|
 cmoonc
职务:普通成员
等级:1
金币:0.0
发贴:48
注册:2004/4/24 18:07:05
|
#82005/4/7 17:53:48
哈哈,问题终于,终于解决了,真是不容易啊,方法如下:
void DataGrid_ItemCreated(object sender,DataGridItemEventArgs e) { if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) //加了一个判断语句 { Button bt=(Button)e.Item.Cells[6].Controls[0]; bt.Attributes["onClick"] = "return confirm('Are you Delete?')"; } }
但仍是知其然不知其所以然,高手能不能解释一下e.Item.ItemType==ListItemType.Item 以及e.Item.ItemType==ListItemType.AlternatingItem的具体意义????
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#92005/4/7 19:14:01
你可以看一下e.Item分几种.呵呵
|