将查询字符串值从asp.net页面传递给iframe

时间:2012-08-29 14:46:10

标签: javascript jquery asp.net

我有一个带有文本框和按钮的asp.net页面。点击按钮,我打开一个弹出窗口并使用iframe加载页面。我想将文本框的值作为查询字符串传递给iframe中的页面。我怎么能这样做?

我尝试使用服务器端iframe:

<iframe id="popupframe" runat="server" src="~/temp.aspx" width="100%" height="455">
            </iframe>     

但是temp.aspx没有加载并给出404.如果我使用它没有服务器端标记

<iframe id="popupframe"  src="../../../../temp.aspx" width="100%" height="455">
            </iframe>     

在iframe中加载页面,但我无法将textbox的值传递给temp.aspx。请建议解决方案。感谢

4 个答案:

答案 0 :(得分:0)

试试这个:

<iframe id="popupframe" runat="server" src="<%= Page.ResolveUrl("~/temp.aspx") %>" width="100%" height="455">
            </iframe> 

答案 1 :(得分:0)

temp.aspx肯定是您网站的根目录吗? 404错误通常是一个非常清楚的迹象,表明您正在寻找的东西不存在!事实上,你在工作纯HTML版本中有一个相对路径,这让我觉得你的服务器端版本的路径可能存在问题。

作为替代方案,您可以将查询字符串传递给弹出页面,并在该页面上使用一些javascript来操作iframe的src属性。

e.g。 (弹出页面上的脚本)

var qs = window.location.search; // Gets the entire querystring - not very obvious!
var iframe = document.getElementById("popupframe");
iframe.src += qs; // Adds the querystring on to the end of the iframe's src.

您希望在加载页面内容后运行它。我不知道你是使用jQuery还是其他框架(或者没有框架!)所以我不会讨论如何做到这一点(但如果你需要我的话,可以这样做。)

答案 2 :(得分:0)

 <% Int64 ss =Convert.ToInt64( Request.QueryString["id"].ToString());%>
 <% string bb = ss.ToString().Insert(0, "testing.aspx?id="); %>
  <iframe    src="<%=bb %>"   style="height: 100%; width: 100%; border: 2px;"> 
 </iframe>

不需要任何脚本。这也是一种格式。

答案 3 :(得分:0)

我用过这个

按钮上的Codebehid单击事件

this.iframRfer.Attributes [“src”] =“visit_opd_refer.aspx?regnn =”+ opdNo;    mpopup.Show();