在ajax模式弹出窗口内的新窗口中发出打开.aspx页面

时间:2010-10-05 10:19:30

标签: c# asp.net

我正试图在INSIDE ajax模式弹出窗口的单独窗口中打开一个preview.aspx页面。 我尝试使用onClientCLick preview.target _blank等进行客户端脚本编写,但这根本不起作用。 我现在设法至少在我的lbPreview_Click例程中工作了,但这需要第二次点击,因为我使用Attributes.Add打开窗口(到目前为止唯一的工作方式!):

protected void lbPreview_Click(object sender, EventArgs e)
{
    string recordNo = lblRecordNo.Text;
    string details = txtQuery.Text;
    string reason = ddReason.SelectedItem.Text;
    string fullName = lblFullName.Text;
    string path = "emailPreview.aspx?recordNo=" + recordNo + "&details=" + details + "&reason=" + ddReason.SelectedItem.Text + "&fullName=" + fullName + "";
    lbPreview.Attributes.Add("onClick", "window.open('" + path + "');");
}

请注意:在单击按钮之前,我没有构建我的url路径的值,因此在页面加载或类似内容上调用详细信息也不起作用。

非常感谢任何建议/帮助。

亲切的问候, ukjezza。

1 个答案:

答案 0 :(得分:0)

您应该使用java-script查找控件值以构建URL,然后打开窗口。例如,考虑在aspx页面上执行js函数

function openPreview() {

   var recordNo = document.getElementById('<%= lblRecordNo.ClientID %>').innerHTML;
   var details = document.getElementById('<%= txtQuery.ClientID %>').value;
   var reason = document.getElementById('<%= ddReason.ClientID %>').value;
   var fullName= document.getElementById('<%= lblFullName.ClientID %>').innerHTML;

   var url = "emailPreview.aspx?recordNo=" + recordNo + "&details=" + details + "&reason=" + reason + "&fullName=" + fullName;

   window.open(url);
}

应该在点击预览按钮/链接时调用。