给iframe加一个name属性如x,在另一iframe中放一个超链接,<a href="kkk.aspx?uid=abc" target="x">
这样就将uid的值传给之前定义的那个name属性为x的iframe了.
我这里只能有一个IFRAME,IFRAME中放的是一个报表,是因为触发了其它后台事件下面的报表就没有了。可以用后台实现IFRAME的SRC设置吗?
@Flyyingzi77:
你下个jquery库,可以加我QQ我发给你,553030761,引用jquery后,这样试试:
<script type="text/javascript">
$("#那个iframe的ID").attr("src","www.xx.xx?a=xx&b=...")
</script>
你現在是怎麼傳的呢?而那個收不到……
现在是用的前台传的src,但是需要在后台再重新取SRC值,保侍之前的状态。因为有回传。
在onload事件中设置就可以了
怎么在onload中设置IFRAME的SRC的属性呢?这个我不怎么清楚。呵呵
@Flyyingzi77: 就是在onload事件中操作IFrame窗体属性,你把值丢掉页面的事件中,然后处理
@az235:
<script type="text/javascript">
function openPrintCode() {
var stockName = document.getElementById("ddltStockName").value;
var codeNo = document.getElementById("ddltCODE_NAME").value;
var bClass = document.getElementById("ddltCLASS_NAME").value;
document.getElementById("IFRAME1").src = "PrintRpt.aspx?codeNo=" + codeNo + "&stockName=" + stockName + "&bClass=" + bClass;
document.getElementById("MyFormLayer").style.display = "block";
}
// document.getElementById("IFRAME1").onload = function(){
// alert("Iframe is now loaded.");
// }
function _onload(){
alert("Testok");
// var IFRAME1=document.getElementById("IFRAME1")
// IFRAME1.innerHTML ="<iframe onload=\"javascript:alert('loaded -includeFrame');\" src=\"http://www.phper.org.cn\"></iframe>";
// document.body.a(IFRAME1);
}
//SCRIPT 中代码
<tr>
<td align="center" style="width: 20%; height: 32px" colspan="2" class="td_Add_V">
<input id="Button1" type="button" onclick="openPrintCode();" value="查詢" tabindex="4" />
<input id="btnCancel" type="button" onclick="hiddenRpt();" value="取消" tabindex="4" />
<%-- <asp:Button ID="btnCancel" runat="server" Text="取消" TabIndex="5"
onclick="btnCancel_Click"/>--%>
</td>
</tr>
</table>
<div align="center" id="MyFormLayer" style="display: none; width: 100%; height: 700px;">
<iframe frameborder="0" align="middle" id="IFRAME1" runat="server" style="border: solid #ffffff;
width: 100%; height: 95%" scrolling="no" onload="_onload();" ></iframe>
</div>
写了几种onload加载方法,运行之后会报“此处需要物件”错误,或者运行不能通过。
onload 事件怎样写运行成功。另外,我用的是IE。谢谢了。
@Flyyingzi77: 你写的方法没有加到body的onload事件上去吧?
@az235: 加到body中好像没有用啊,点击dropdownlist 后Iframe中的报表还是被刷新给弄没了。所以我在iframe 加了onload事件,不过我这样写报错,我在想用iframe的ONLOAD 事件可以吗,可以的话帮我修改一下噢。
使用Web控件,包装IFRAME
public class IframeControl : System.Web.UI.Control
{
private string _url;
private Unit _width;
private Unit _height;
private Unit _borderWidth;
public string Url
{
get { return _url; }
set { _url = value; }
}
public Unit Width
{
get { return _width; }
set { _width = value; }
}
public Unit Height
{
get { return _height; }
set { _height = value; }
}
public Unit BorderWidth
{
get { return _borderWidth; }
set { _borderWidth = value; }
}
public IframeControl()
{
}
protected override void Render(HtmlTextWriter output)
{
StringBuilder sb = new StringBuilder();
sb.Append("<iframe");
sb.Append(" id='"); sb.Append(ClientID); sb.Append("'");
sb.Append(" src='"); sb.Append(_url); sb.Append("'");
sb.Append(" width='"); sb.Append(_width); sb.Append("'");
sb.Append(" height='"); sb.Append(_height); sb.Append("'");
sb.Append(">");
sb.Append("</iframe>");
output.Write(sb.ToString());
}
protected override void LoadViewState(object savedState)
{
object[] myState = (object[])savedState;
this._url = (string)myState[0];
this._width = (Unit)myState[1];
this._height = (Unit)myState[2];
this._borderWidth = (Unit)myState[3];
}
protected override object SaveViewState()
{
object[] savedState = new object[4];
savedState[0] = this._url;
savedState[1] = this._width;
savedState[2] = this._height;
savedState[3] = this._borderWidth;
return savedState;
}
}