自动加载用户控件,使用了GridView1.DataBind()后,导致Button的click事件要点击两次才有效

Xiaoxiong511 2007-11-17 01:27:51
自动加载用户控件,使用了GridView1.DataBind()后,导致Button的click事件要点击两次才有效果
部分代码如下:
// 控件初始化
//
/// <summary>
/// 控件初始化
/// </summary>
protected override void InitializeSkin(Control skin)
{

//查找控件
//查找按钮
Button1 = (Button)skin.FindControl("Button1");
Button1.Click += new EventHandler(Button1_Click);
//删除信息提示
//Button1.Attributes["onclick"] = "javascript:return confirm('您真的要删除吗?');";

GridView1 = (GridView)skin.FindControl("GridView1");


if (!Page.IsPostBack)
GridViewBind();
}


/// <summary>
/// 绑定数据到GridView
/// </summary>
private void GridViewBind()
{
YunBao.BLL.YunBao_admin_user bll = new YunBao.BLL.YunBao_admin_user();

DataTable dt = bll.GetList("").Tables[0];
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();


dt.Dispose();
}


/// <summary>
/// 删除
/// </summary>
/// <param name="sender">ID</param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(GetType(), "提示", "<script>alert('请选择要删除的管理员记录。');</script>");


}

点执行了GridViewBind()后,Button1_Click事件就需要点击两次才能有效果,第一次点击无法执行里面的代码?
求高人指点?
...全文
344 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq22345111 2007-11-17
  • 打赏
  • 举报
回复
很明显 你的GridBind绑定内容的数据在执行绑定前已经存在一个绑定了


最简单的办法就是使用try,分断执行。(你认为你绑定没错的情况下,使用Try把执行了sql语句的地方分开)

在不行,设定断点调试!
yuan74521940 2007-11-17
  • 打赏
  • 举报
回复
Page_Load事件没内容 ......
第2你真的确定你那动态加Button可以执行???
那你说要2次?断点看看第一次的时候执行到那里???
Xiaoxiong511 2007-11-17
  • 打赏
  • 举报
回复
谢谢大家,我已经换用Repeater1控件,问题已经解决了。
suyiming 2007-11-17
  • 打赏
  • 举报
回复
应该还有个pageload事件的
    protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GridViewBind();
}
}
suyiming 2007-11-17
  • 打赏
  • 举报
回复
if (!Page.IsPostBack)
{
GridViewBind();
}
Xiaoxiong511 2007-11-17
  • 打赏
  • 举报
回复
如果去掉 if (!Page.IsPostBack)
那么button_click一次都不会执行。好像是这样执行了GridViewBind()后,button_click事件就无法执行了。
加了if (!Page.IsPostBack) 后,第二次就不会执行到GridViewBind(),button_click事件就执行了。所以就要点两次。不知道什么原因。因为我才开始使用.NET,对于很多东西还不是很了解。希望有人可以指点一下~
是否是GridView控件的问题。换用datalist或者Repeater是否可以。如果无人解答,只好明天换控件试试了。
suyiming 2007-11-17
  • 打赏
  • 举报
回复
if (!Page.IsPostBack)
GridViewBind();
这里问题

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧