日期:2014-05-18  浏览次数:20669 次

repeater嵌套按钮
后台代码:protected void Lb_Get_Click(object sender, CommandEventArgs e)
  {
  int id = int.Parse(e.CommandName);
  string sql = " where id=" + id;
  string filepath = BIvite.SelectInviteList(sql).ProFileName;
  for (int i = 0; i < repeater1.Items.Count; i++)
  {
  LinkButton lb = (LinkButton)repeater1.Items[i].FindControl("Lb_Get");
  lb.Attributes.Add("onclick", "javascript:window.open(\"../FileLoad/Invite/" + filepath + "\")");
  }
  }
前台代码:<asp:LinkButton ID="Lb_Get" CommandName='<%# DataBinder.Eval(Container.DataItem, "ID")%>' OnCommand="Lb_Get_Click" runat="server">下载</asp:LinkButton>

为什么第一次点击下载没有效果,但是页面会刷新,后面点击下载的时候,都是先弹出下载框然后才进入后台方法,也就是说每次下载获取到的都是前一次点击的那个数据

------解决方案--------------------
打断点跟踪一下 你就会非常清楚 问题出在哪了

你绑定js下载 click 是在 按钮的事件里面~ 所以第一次点击的时候 是给button 绑定了 onclick 脚本

第二次才真正 onclick

所以你的逻辑有点问题
------解决方案--------------------
楼上正解,用RegisterStartupScript比较好