我有response.redirect
页面所需的所有代码,并将我需要的信息传递给另一个页面。但我不希望它重定向页面,而是在页面中创建一个弹出窗口。我也有代码的弹出窗口,但我不能设法传递信息给它。
这是弹出窗口的代码,它不传递任何信息:
<asp:LinkButton ID="lb_viewstudenttimetable" runat="server" OnClick="lb_viewstudenttimetable_Click"
OnClientClick="window.open('Timetable_User.aspx','Timetable','width=640,height=360,scrollbars=yes');">
这是OnClick
按钮的代码,它将信息传递到另一个页面
protected void lb_viewstudenttimetable_Click(object sender, EventArgs e)
{
GridViewRow row = gv_classlist.SelectedRow;
Response.Redirect("Timetable_User.aspx?UserID=" + row.Cells[1].Text + "");
//my attempt of trying to pass the following to the popup
//Response.Write("window.open('Timetable_User.aspx?UserID="+row.Cells[1].Text+"','Timetable','width=640,height=360,scrollbars=yes');");
}
我想用OnClientClick
来完成OnClick
的功能
只需传递查询字符串:
<asp:LinkButton ID="lb_viewstudenttimetable" runat="server"
OnClick="lb_viewstudenttimetable_Click"
OnClientClick="window.open('Timetable_User.aspx?UserID=x', 'Timetable', 'width=640,height=360,scrollbars=yes');">
问题是,当"x"来自服务器时,如何将"x"放入查询字符串中。你需要做的是,在GridView的Databinding事件中,构建OnClientClick使用的JavaScript字符串,然后设置它。这样,每个网格行的LinkButton在点击时就已经准备好了。
你想要一个弹出窗口还是一个新的浏览器选项卡?如果你想要一个弹出框,我通常使用像这样的iframe。
<a rel="#popupinit" href="#" uniqenum='<%= serversideUniquenum %>'>Open popup</a>
<div style="background-color: white; top: 30px; text-align:center ; width:100%" id="ShowOrderGrid" >
<iframe id="iframeid" src='' style="width: 500px; text-align:center ; height: 650px;"></iframe>
</div>
<script>
$(function () {
$("a[rel='#popupinit]").click(function () {
var uniquenum = $(this).attr("uniquenum");
$('#iframeid').attr('src', '/somepath/somepath/somepage.aspx?uniquenum=' + uniquenum);
});
</script>
GridViewRow row = gv_classlist.SelectedRow;
lbl_timetableuserid.Text = row.Cells[1].Text;
ScriptManager.RegisterStartupScript(this, typeof(string), "New_Window", "window.open('Timetable_User.aspx?UserID=" + row.Cells[1].Text + "', null, 'height=360,width=640,status=yes,toolbar=yes,menubar=yes,location=no' );", true);