asp.net c#向html内传值问题,高手请来
动态在主页生成的链接,现在单击链接会打开一个html页面,该页面内有一个iframe,他的src属性指定一个aspx页面。以此动态显示数据,如果直接代开aspx页面的话可...
动态在主页生成的链接,现在单击链接会打开一个html页面,该页面内有一个iframe,他的src属性指定一个aspx页面。以此动态显示数据,如果直接代开aspx页面的话可以指定属性NavigateUrl=?参数值。但是这个页面在iframe里,如何能把值传给iframe的src里,或者有其他办法,希望高手帮忙
展开
展开全部
可以用JAVASCRIPT实现:
1 假设你的父页面为A.ASPX,打开页面为B.HTML,嵌入页面为C.ASPX
2 对A.ASPX中的链接做如下处理:当链接click事件执行时,给A.ASPX中添加一个<INPUT TYPE="HIDDEN" /> 或者隐藏<DIV/>都可以,把需要存的属性值放进去。
3 打开B.HTML之后,WINDOW.ONLOAD执行时,取得WINDOW.OPENER.DOCUMENT中的INPUT或DIV中的值,赋值给IFRAME.SRC就可以了。
这种方案只能在链接的TARGET为_blank时可以。
如果要在A.ASPX所在的窗口中打开B.HTML,只能通过AJAX之类的异步交互实现了:
1 在点击链接的同时把需要的参数值放入SESSION中
2 在B.HTML页面中定义一个XMLHTTPREQUEST对象,在加载完DOCUMENT后执行对一个服务方法(这个方法可以获得SESSION)的调用
3 最后在回调函数里对IFRAME.SRC进行赋值。
1 假设你的父页面为A.ASPX,打开页面为B.HTML,嵌入页面为C.ASPX
2 对A.ASPX中的链接做如下处理:当链接click事件执行时,给A.ASPX中添加一个<INPUT TYPE="HIDDEN" /> 或者隐藏<DIV/>都可以,把需要存的属性值放进去。
3 打开B.HTML之后,WINDOW.ONLOAD执行时,取得WINDOW.OPENER.DOCUMENT中的INPUT或DIV中的值,赋值给IFRAME.SRC就可以了。
这种方案只能在链接的TARGET为_blank时可以。
如果要在A.ASPX所在的窗口中打开B.HTML,只能通过AJAX之类的异步交互实现了:
1 在点击链接的同时把需要的参数值放入SESSION中
2 在B.HTML页面中定义一个XMLHTTPREQUEST对象,在加载完DOCUMENT后执行对一个服务方法(这个方法可以获得SESSION)的调用
3 最后在回调函数里对IFRAME.SRC进行赋值。
展开全部
也就是说aspx页面中的连接是一个纯html页面?html中的iframe是aspx?
假设主页是a,连接页是b,iframe页是c
一种是把b.html换成aspx的,a链接中把参数及值通过b.aspx?someone=value传给b,b的cs文件中定义一个public变量someone在Page_load中用someone=Request.Params["someone"],然后再b的aspx文件中的iframe的src写成c.aspx?someone=<%=someone%>
一种是通过js脚本传递,给b.html传值方式不变b.html?someone=value,b页面中js部分写法如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
function transfer(){
var url = document.location.href;
var paraString = url.substring(url.indexOf("?")+1,url.length);
if (document.all){
document.frames["test"].document.location.href= "c.aspx?" + paraString;
}else{
document.getElementById("test").src = "c.aspx?" + paraString;;
}
}
</script>
<body onload="transfer();">
<iframe id="test" name="test"></iframe>
</body>
</html>
假设主页是a,连接页是b,iframe页是c
一种是把b.html换成aspx的,a链接中把参数及值通过b.aspx?someone=value传给b,b的cs文件中定义一个public变量someone在Page_load中用someone=Request.Params["someone"],然后再b的aspx文件中的iframe的src写成c.aspx?someone=<%=someone%>
一种是通过js脚本传递,给b.html传值方式不变b.html?someone=value,b页面中js部分写法如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
function transfer(){
var url = document.location.href;
var paraString = url.substring(url.indexOf("?")+1,url.length);
if (document.all){
document.frames["test"].document.location.href= "c.aspx?" + paraString;
}else{
document.getElementById("test").src = "c.aspx?" + paraString;;
}
}
</script>
<body onload="transfer();">
<iframe id="test" name="test"></iframe>
</body>
</html>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用A的话,指定name就可以了:如:
<a href="aa.aspx" target="iframeName">点我</a>
<iframe name="iframeName"></iframe>
如果是其它,只能用JS改变src属性了,如:
document.getElementById("iframeName").src = "你要打开的页面"
<a href="aa.aspx" target="iframeName">点我</a>
<iframe name="iframeName"></iframe>
如果是其它,只能用JS改变src属性了,如:
document.getElementById("iframeName").src = "你要打开的页面"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
iframe里面的src后面带参数就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
src="test.aspx?NavigateUrl=?"
更多追问追答
追问
NavigateUrl=?问号里的值怎么传进去呢?
追答
你的意思是你点链接的时候连接时 a.html要给他传递一个参数,然后iframe里面显示根据这个参数变化的aspx的网页吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询