C# asp.net 动态生成ImageButton控件及其单击事件,单击控件事件不执行,各位高手帮帮忙解决问题有30加分

C# asp.net 动态生成ImageButton控件及其单击事件,单击控件事件不执行,各位高手帮帮忙解决问题有30加分,第1张

public void test()

{

ImageButton ib = new ImageButton()

ib.ImageUrl = ""

ib.Click += new ImageClickEventHandler(ib_Click)

DataPanel.Controls.Add(ib)

}

void ib_Click(object sender, ImageClickEventArgs e)

{

Response.Write("<script>alert('成功了!')</script>")

}

我这样写可以触发这click事件啊

click+= 直接Tab键试试?

GridView有了删除列的项很大方便了界面设计,在以前的版本中我们不得不用再增加一列,模板列也好链接按钮也好,总之要查找到此控件属性加onclick事件。在ASP.NET 2.0中也延用了这套机制。首先我们设置CommandField,把ShowEditButton、ShowDeleteButton属性都设置为true,当然这是灵活应用的,也可以只设置ShowDeleteButton属性,那样下面的代码你要修改一下调换一下顺序。页面代码如下:

<asp:CommandField ShowEditButton="true" HeaderText="编辑区" ShowDeleteButton="true" ButtonType="Image"

EditImageUrl="~/image/editgrid.gif" UpdateImageUrl="~/Image/edititem.gif" CancelImageUrl="~/image/Cancel.gif" DeleteImageUrl="~/image/delitem.gif" />

我使用的是图片按钮并且放在了第8列,因此以下代码仅使用我设置好的情况,其它情况类似灵活设置,后台代码如下:

1protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

2{

3if (e.Row.RowType == DataControlRowType.DataRow)

4{

5ImageButton imgFlag = new ImageButton()

6imgFlag = ((ImageButton)e.Row.Cells[7].Controls[2])

7if (imgFlag.AlternateText == "删除")

8{

9imgFlag.Attributes.Add("onclick", "javascript:return confirm('您确信要删除吗!?')")

10}

11

12}

13

14}

提示: 如果没有设置为图片按钮,把 ImageButton改为LinkButton行了。

解释一下原因,在CommandField列里设置了ShowEditButton、ShowDeleteButton属性后,.net会在生成结果ShowEditButton、ShowDeleteButton之间加上空格( ),因此一个单元格里有三个控件,image(编辑)、 (空格)、image(删除),((ImageButton)e.Row.Cells[7].Controls[2])这一句就指定了删除列的位置。找到这个控件就好办了,那就加属性就行了,但是要考虑,再点击了编辑按钮后是“更新”、“取消”两列没有“删除”列因此需要根据实际情况判断一下,代码如下:

if (imgFlag.AlternateText == "删除")

{

imgFlag.Attributes.Add("onclick", "javascript:return confirm('您确信要删除吗!?')")

}

提示: 如果是LinkButton,根据LinkButton的Text判断一下就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11179869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存