奇怪的默认起始页问题?请高手指点! 我的起始页是Index.htm,里面包含三个框架Head、Left、Right,三个框架分别对应a.aspx、b.aspx和c.aspx。奇怪的是,有时启动时Index.htm打开后,又在前端打开了b.aspx页面。请问各位,如何在打开时只启动Index.htm页面? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 又在前端打开了b.aspx页面楼主的框架的代码是怎么写的?frameSet,还是iframe Private Sub DropDownListFilter_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownListFilter.SelectedIndexChanged Dim strURL As String '根据下拉列表框选中内容更新树型页面 strURL = "NavigateTreeView.aspx?TreeName=" & Trim(DropDownListFilter.SelectedItem.Text) & "&TreeParentID=" & Trim(DropDownListFilter.SelectedValue) strURL = "<script language=javascript>window.open('" & strURL & "','Left')</script>" Response.Write(strURL)End Sub这段代码是在a.aspx页中实现的! 抱歉,我实际的页面用到了框架嵌套:Index.htm分上下框架Head、Main,框架Head对应页面a.aspx;框架Main对应页面main.htm,其中有框架Left、Right,分别对应b.aspx和c.aspx,我想在页面a.aspx中传参给页面b.aspx,就出现这种情况。请各位打下不吝赐教!谢谢!Index.htm中框架代码:<frameset border="0" frameSpacing="0" rows="100%" frameBorder="0"> <FRAMESET border="0" rows="44,92%" frameBorder="0"> <FRAME src="HeadPage.aspx" noResize scrolling="no" name="Head"> <FRAME name="Main" src="Main.htm"> </FRAMESET> <noframes> </noframes></frameset>Main.htm中框架代码:<FRAMESET border="5" borderColor="#000066" frameBorder="1" cols="229,70%" frameSpacing="5" style="BACKGROUND-COLOR: transparent"> <FRAME name="Navigate" src="NavigateTreeView.aspx"> <FRAME name="content" src="Input.aspx"></FRAMESET> 谢谢 swordragon(古道热肠) 的关注! 把strURL = "<script language=javascript>window.open('" & strURL & "','Left')</script>"替换为:strURL = "<script language=javascript>window.open('" & strURL & "','Navigate')</script>"即可。主要是因为没有找到名字叫“Left”的窗口,所以就新打开了一个页面,名字叫Left。希望能解决你的问题!!! 改过了,还是出现问题!我觉得问题好像出在window上,因为此时的window指的是a.aspx,好像无法确定框架Left和Right的位置,但我却不知怎么修改!您看呢? 我想和window指向的是谁都没有关系的,主要还是没有找到所要打开的窗口。原因可能是在open的时候,'Navigate'这个窗口还没有创建,先创建的时a.aspx所在的窗口。我再看看还有没有别的办法吧。 你说得很对,我后来曾改为window.parent.frames(1).frames(0).location=strUrl时,好像就没有frame(0)指的对象!好,小弟先谢了! 1、在HeadPage.aspx的PageLoad事件中,追加:C#:DropDownList1.Attributes.Add("onchange","openWindow(this);");VB:DropDownList1.Attributes["onchange"] = "openWindow(this);";(由于我使用的C#,对VB不是很熟,写错了不要见怪!)2、在NavigateTreeView.aspx中,追加:<script language="javascript">function openWindow(objDL){ var strUrl = "NavigateTreeView.aspx?TreeName=" + objDL.options[objDL.selectedIndex].text + ""&TreeParentID=" + objDL.options[objDL.selectedIndex].value; window.open(strUrl,"Navigate");}</script>3、注释掉Private Sub DropDownListFilter_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownListFilter.SelectedIndexChanged中的代码;这样做的话,就不会再刷新是弹出另外一个窗口了。----------------------------------------我之所以不太喜欢服务器控件,就是因为它的回调事件。你的这种现象,都是回调事件引起的。 我刚才试了一试,你给的方法能避免弹出b.aspx,但是我要的效果区没有了!其实我是想在初始化页面时,根据a.aspx中下拉列表框中选中的内容,来更新b.aspx中树型控件的内容。你的方法添加了下拉列表的事件以及响应过程,但在初始化页面时却没有执行响应过程。 初始化的时候是不会自动触发DropDownListFilter_SelectedIndexChanged事件的,你是通过手工设置下拉列表框中选中的内容来实现的吧。 是的,初始化的时候是不会自动触发DropDownListFilter_SelectedIndexChanged事件,我是执行以下两行:DropDownListFilter.SelectedIndex = 1DropDownListFilter_SelectedIndexChanged(DropDownListFilter, e)实现对树型控件的初始化的。我想过了,你的方法只要在初始化是执行一下就可以了!不过,好像还不行,在最初执行时,'Navigate'窗口好像还没创建呢?郁闷! swordragon(古道热肠)大侠,不知我说得是否有道理! 这样吧,你在NavigateTreeView.aspx中直接初始化tree可以吗?类似以下的代码可以实现:var treeview1;var treenode1;//得到tree对象treeview1 = window.contents.document.getElementById("TreeViewMenu");//根据节点的索引取得节点(0.0代表的是第一个父节点的字节点)treenode1 = treeview1.getTreeNode("你需要初始的TreeParentID的索引");//打开指定的节点treenode1.setAttribute("expanded","true");//指向指定的节点treeview1.selectedNodeIndex("0.0");由于我这里没有树,所以,你就仿照例子写吧。tree的节点索引是从0开始的:0 --0 --0 --1 --1 --0 --11 --0... 好,我再试试看,谢谢 swordragon(古道热肠) 的关注! 我是个菜鸟,希望成为朋友!我的MSN:[email protected],有问题还要向你请教! Return value from thickbox to Parent Page 高分求加为好友的界面及代码 如何当点击模式窗体中的确定按牛的时候,将参数传到父窗体,刷新父窗体,并关闭当前模式窗体 写xml时,如何写入引用xslt???谢谢~~~~ menu子菜单自动下拉问题 在类里如何使用server.mappath 请教一个关于读大小类的问题! 无法连接数据库(急 在线等) 急!能否在一个操作中同时下载多个文件! 在ASP.NET下使用ActiveX控件的问题 求一份WebService返回XML-RPC格式的例子? 关于cryster repoter的问题
Dim strURL As String
'根据下拉列表框选中内容更新树型页面
strURL = "NavigateTreeView.aspx?TreeName=" & Trim(DropDownListFilter.SelectedItem.Text) & "&TreeParentID=" & Trim(DropDownListFilter.SelectedValue)
strURL = "<script language=javascript>window.open('" & strURL & "','Left')</script>"
Response.Write(strURL)End Sub这段代码是在a.aspx页中实现的!
请各位打下不吝赐教!谢谢!Index.htm中框架代码:
<frameset border="0" frameSpacing="0" rows="100%" frameBorder="0">
<FRAMESET border="0" rows="44,92%" frameBorder="0">
<FRAME src="HeadPage.aspx" noResize scrolling="no" name="Head">
<FRAME name="Main" src="Main.htm">
</FRAMESET>
<noframes>
</noframes>
</frameset>
Main.htm中框架代码:
<FRAMESET border="5" borderColor="#000066" frameBorder="1" cols="229,70%" frameSpacing="5"
style="BACKGROUND-COLOR: transparent">
<FRAME name="Navigate" src="NavigateTreeView.aspx">
<FRAME name="content" src="Input.aspx">
</FRAMESET>
strURL = "<script language=javascript>window.open('" & strURL & "','Left')</script>"替换为:
strURL = "<script language=javascript>window.open('" & strURL & "','Navigate')</script>"
即可。主要是因为没有找到名字叫“Left”的窗口,所以就新打开了一个页面,名字叫Left。
希望能解决你的问题!!!
我觉得问题好像出在window上,因为此时的window指的是a.aspx,好像无法确定框架Left和Right的位置,但我却不知怎么修改!
您看呢?
C#:
DropDownList1.Attributes.Add("onchange","openWindow(this);");
VB:
DropDownList1.Attributes["onchange"] = "openWindow(this);";
(由于我使用的C#,对VB不是很熟,写错了不要见怪!)2、在NavigateTreeView.aspx中,追加:
<script language="javascript">
function openWindow(objDL)
{
var strUrl = "NavigateTreeView.aspx?TreeName=" + objDL.options[objDL.selectedIndex].text + ""&TreeParentID=" + objDL.options[objDL.selectedIndex].value;
window.open(strUrl,"Navigate");
}
</script>3、注释掉
Private Sub DropDownListFilter_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownListFilter.SelectedIndexChanged中的代码;这样做的话,就不会再刷新是弹出另外一个窗口了。----------------------------------------我之所以不太喜欢服务器控件,就是因为它的回调事件。你的这种现象,都是回调事件引起的。
其实我是想在初始化页面时,根据a.aspx中下拉列表框中选中的内容,来更新b.aspx中树型控件的内容。你的方法添加了下拉列表的事件以及响应过程,但在初始化页面时却没有执行响应过程。
DropDownListFilter.SelectedIndex = 1
DropDownListFilter_SelectedIndexChanged(DropDownListFilter, e)
实现对树型控件的初始化的。我想过了,你的方法只要在初始化是执行一下就可以了!
不过,好像还不行,在最初执行时,'Navigate'窗口好像还没创建呢?
郁闷!
类似以下的代码可以实现:
var treeview1;
var treenode1;//得到tree对象
treeview1 = window.contents.document.getElementById("TreeViewMenu");
//根据节点的索引取得节点(0.0代表的是第一个父节点的字节点)
treenode1 = treeview1.getTreeNode("你需要初始的TreeParentID的索引");
//打开指定的节点
treenode1.setAttribute("expanded","true");
//指向指定的节点
treeview1.selectedNodeIndex("0.0");由于我这里没有树,所以,你就仿照例子写吧。
tree的节点索引是从0开始的:
0
--0
--0
--1
--1
--0
--1
1
--0
...