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比较好