DATAGRID模板列中按钮响应自身ONCLICK

时间:2022-05-20 09:34:18
DATAGRID模板列中包含了一个按钮,按钮的COMMANDNAME="OKCMD",ID="OKBTN"。
在DATAGRID_ITEMCOMMAND中使用E.COMMANDNAME="OKCMD"来判断是否点击了此按钮。现在想让点击此按钮时弹出对话框,以便“确定”或“取消”。但是此时不能使用OKBTN.Attributes.Add"onclick", "return confirm('ok?')")方法,请大家给予解决方法。谢谢。

13 个解决方案

#1


private void gd_xx_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem) 
{
ImageButton button = (ImageButton) e.Item.FindControl("Imagebutton2");
button.Attributes.Add ("onclick",
"return confirm (\"确定要删除此项记录吗?\");");
}
}

和你那个类似也就是说用  (ImageButton) e.Item.FindControl("Imagebutton2");
 找到后,然后给加上事件.....

#2


还有什么问题吗?

#3


谢谢,我试试。

#4


弄好了,谢谢!给分!

#5


该回复被版主删除

#6


上面兄弟说的方法对于单独一个数据行还可以,当DATAGRID显示多行数据时就不行了,再次求救!

#7


我说的意思是,DATAGRID显示数据时,每行都会产生一个按钮,单击第一行的按钮时可以响应ONCLICK事件,然后第二行就不能响应,然后第三行还能响应,也就是说单行可以响应事件,双行不可响应。再次求大家帮助,急需,谢谢!

#8


private void gd_xx_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item )//单行可以 
{
ImageButton button = (ImageButton) e.Item.FindControl("Imagebutton2");
button.Attributes.Add ("onclick",
"return confirm (\"确定要删除此项记录吗?\");");
}
}

#9


我看到了一个网站 100MB asp和 asp.net空间 50元/年现在促销,
同学们可以做一个简单的个人网站用来找工作 
http://www.hi876.com 你们也看看吧,

#10


也就是说单行可以响应事件,双行不可响应
----------------
那是因为你在做事件的时候,光做了普通行的按钮事件,没有做交替行的按钮事件,所以它不响应.

#11


楼上的老兄,我是初学者,不是很熟悉,你说的意思是还要写交替行事件,那应该怎么写,再次谢谢

#12


顶一下

#13



if(e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)
{
Button Event1 = (Button)e.Item.FindControl("btnEvent1");
Button Event2 = (Button)e.Item.FindControl("btnEvent2");

Event1.Attributes.Add("onclick","return confirm('确定执行Event1?');");
Event2.Attributes.Add("onclick","return confirm('确定执行Event2?');");
}

在DataGrid的ItemCreated事件中添加以上代码
if(e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)这句就是判断Item项和AlternatingItem的

#1


private void gd_xx_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem) 
{
ImageButton button = (ImageButton) e.Item.FindControl("Imagebutton2");
button.Attributes.Add ("onclick",
"return confirm (\"确定要删除此项记录吗?\");");
}
}

和你那个类似也就是说用  (ImageButton) e.Item.FindControl("Imagebutton2");
 找到后,然后给加上事件.....

#2


还有什么问题吗?

#3


谢谢,我试试。

#4


弄好了,谢谢!给分!

#5


该回复被版主删除

#6


上面兄弟说的方法对于单独一个数据行还可以,当DATAGRID显示多行数据时就不行了,再次求救!

#7


我说的意思是,DATAGRID显示数据时,每行都会产生一个按钮,单击第一行的按钮时可以响应ONCLICK事件,然后第二行就不能响应,然后第三行还能响应,也就是说单行可以响应事件,双行不可响应。再次求大家帮助,急需,谢谢!

#8


private void gd_xx_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item )//单行可以 
{
ImageButton button = (ImageButton) e.Item.FindControl("Imagebutton2");
button.Attributes.Add ("onclick",
"return confirm (\"确定要删除此项记录吗?\");");
}
}

#9


我看到了一个网站 100MB asp和 asp.net空间 50元/年现在促销,
同学们可以做一个简单的个人网站用来找工作 
http://www.hi876.com 你们也看看吧,

#10


也就是说单行可以响应事件,双行不可响应
----------------
那是因为你在做事件的时候,光做了普通行的按钮事件,没有做交替行的按钮事件,所以它不响应.

#11


楼上的老兄,我是初学者,不是很熟悉,你说的意思是还要写交替行事件,那应该怎么写,再次谢谢

#12


顶一下

#13



if(e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)
{
Button Event1 = (Button)e.Item.FindControl("btnEvent1");
Button Event2 = (Button)e.Item.FindControl("btnEvent2");

Event1.Attributes.Add("onclick","return confirm('确定执行Event1?');");
Event2.Attributes.Add("onclick","return confirm('确定执行Event2?');");
}

在DataGrid的ItemCreated事件中添加以上代码
if(e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)这句就是判断Item项和AlternatingItem的