0

朋友我有一个父页面(default.aspx),其中包括一个 iframe 页面(iframe.aspx),该页面包含字段中的文本框。父页面包含“保存”按钮。现在我想在提交父页面时获取 iframe 页面的值。如何访问父页面提交中的 iframe 页面字段?

iframe.aspx 页面,,,, 在 iframe 页面中我有两个文本框,,

<asp:textbox id="txtfromdate" runat="server"></asp:textbox> 
<asp:textbox id="txttodate" runat="server"></asp:textbox>

default.aspx 页面

<iframe id="iframebody" runat="server" src="iframe.aspx" style="width:900px; height:600px"></iframe>

<asp:button id="submit" text="save" runat="server" />

当我单击按钮时,frdz 如何在父页面(default.aspx)中访问 iframe 页面 id(txtfromdate,txtTodate)?

4

2 回答 2

2

点击按钮试试这个javascript。

HTML

<input type="hidden" id="txtHidData" runat="server" />

Javascript

var iframe = document.getElementById('iframebody');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var usernameTextBox = innerDoc.getElementById('txtfromdate');
document.getElementById ( "txtHidData" ).value = usernameTextBox.value;

C#

string valueInCodeBehind = txtHidData.Value;
于 2012-07-18T06:30:34.293 回答
0

您无法使用服务器端代码访问 iframe 的内容。

要访问 iframe 的内容,您应该使用 javascript。

在 jquery 中,您可以访问它:

var iFrameContent = $('#iframebody').content();
var fromDate = iFrameContent.find('#txtfromdate').val();
var toDate= iFrameContent.find('#txttodate').val();

将其存储在页面上的隐藏字段中,然后在服务器端代码中访问

在您的 aspx 页面上放置两个隐藏字段。像

<asp:HiddenField id="hdffromdate" runat="server"></asp:textbox> 
<asp:HiddenField id="hdftodate" runat="server"></asp:textbox>

在这些隐藏字段中设置值,例如

$('[id$=hdffromdate]').val(fromDate );
$('[id$=hdftodate]').val(toDate);

在您的提交按钮单击事件处理程序

protected void submit_Click(object sender, EventArgs e)
{
      var fromDate = Convert.ToDateTime(hdffromdate.Value);
      var toDate = Convert.ToDateTime(hdftodate.Value);
      //...
}
于 2012-07-18T06:33:03.940 回答