ASP.NET Web控件按钮事件加载无效。
来源:互联网 发布:淘宝店铺差评 编辑:程序博客网 时间:2024/06/07 16:32
很久不做ASP.NET 了,工作需要又捡起来,做一个toolbar,动态添加操作按钮。
/// <summary>
/// 初始化构造
/// </summary>
public TKToolBar()
{
btnExprot = new Button();
btnExprot.CommandName = BTN_EXPORT;
btnExprot.CssClass = "btn_dc";
btnExprot.Click += new EventHandler(btn_Click);
}
/// 统一处理按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
if (btn.CommandName == BTN_EXPORT)
{
if (OnExportClick != null)
{
OnExportClick(sender, e);
}
}
}
/// <summary>
/// 控件呈现
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<table width=\"" + this.Width + "\" border=\"0\" cellspace=\"0\" cellpadding=\"0\"><tr><td align=\"right\">");
//导出按钮
if (!string.IsNullOrEmpty(ButtonExportScript))
{
btnExprot.OnClientClick = ButtonExportScript;
}
if (ButtonExport && (!RightCtrl||(RightCtrl && PermissionRight.ExportEnable)))
{
btnExprot.RenderControl(writer);
}
}
上面代码执行时显示均正常,但是就是服务器端按钮事件无效,郁闷。
折腾了半天,原来是没有将按钮控件添加到控件集合中,
缺少 this.Controls.Add(btnExprot);这一句。
修改
/// <summary>/// 初始化构造
/// </summary>
public TKToolBar()
{
btnExprot = new Button();
btnExprot.CommandName = BTN_EXPORT;
btnExprot.CssClass = "btn_dc";
btnExprot.Click += new EventHandler(btn_Click);
this.Controls.Add(btnExprot);
}
就可以了,原因是,虽然呈现了按钮,但是由于控件树没有构建相互关系,按钮的事件无法进行向上冒泡。
属于低级失误,记于此
- ASP.NET Web控件按钮事件加载无效。
- asp 验证控件导致 button按钮 事件无效
- ASP.NET Web 服务器控件事件模型
- ASP.NET Web 服务器控件事件模型
- ASP.NET - TreeView Web 服务器控件事件
- asp.net中的按钮事件不触发页面验证控件
- ASP.NET WEB控件如何添加控件事件的响应函数
- ASP.NET验证控件无效
- asp.net使用treeview控件,使用reeNodePopulate事件加载节点
- ASP.NET按钮事件失效
- ASP.NET树控件,Microsoft.Web.UI.WebControls加载错误
- 为ASP.NET WEB自定义控件添加提交事件
- 向 ASP.NET Web 服务器控件添加客户端脚本事件
- 向 ASP.NET Web 服务器控件添加客户端脚本事件
- ASP.NET-常用按钮控件
- asp.net中的按钮在页面上有验证控件的时候不触发按钮事件
- 动态加载控件 asp.net
- asp.net 动态加载控件
- IE8/IE9无法加载 Activex 控件怎么办?
- ACE_Reactor是如何做到事件分发的
- Oracle® 数据库备份恢复基础--5.3安装和维护Oracle闪回数据库
- winScp 连接linux 机器
- 如何从一个对话框弹出单文档视图
- ASP.NET Web控件按钮事件加载无效。
- DM8261 U 盘 量产
- ASP.NET - Exception from HRESULT: 0x80070057 (E_INVALIDARG)
- 使用 Eclipse Memory Analyzer 进行堆转储文件分析
- python3.x学习——语法学习
- 解决火狐(Firefox)浏览器不能复制动态图片问题
- 异步IO、APC、IO完成端口、线程池与高性能服务器之一 异步IO
- 10大数据挖掘的18个候选算法
- 学习Google Chrome源码