佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 695|回复: 11

frame 的问题

[复制链接]
发表于 1-6-2006 09:58 PM | 显示全部楼层 |阅读模式
小弟在left.aspx有一个search engine,让user enter area name & property type 来搜寻相关资料

现在当我按search button后,右边的page会变去 left.aspx

<form name=form1 action="result.aspx" method=post runat="server" target="center">
<asp:dropdownlist id=ddl_Pro_type runat="server" Width="136px"></asp: DropDownList>
<asp:button id=btn_Search runat="server" Text="Search"></asp:Button>
</FORM>


我的最终目的是当我按下search button后,右边的result.aspx会display query result...




[ 本帖最后由 counterking 于 1-6-2006 10:09 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 1-6-2006 11:40 PM | 显示全部楼层
这里有个简单折衷的方法.

你的 left.aspx 什么都别做好了... 就只是 refresh.
在你的 left.aspx 的 code 里, 让你的 btn_Search 在 onclick 的时候执行以下的 javascript:

function PostSearch () {

  // 这 window.frame1.location.url 也许写错了, 你需要去找找如何控制 frame 的 javascript, 但基本概念就是这样.
  window.frame1.location.url = "result.aspx?area=" + document.forms[0].area.value + "&type" + document.forms[0].type.value;

}
回复

使用道具 举报

 楼主| 发表于 2-6-2006 12:50 AM | 显示全部楼层
regarding to ur suggestion code.. do u think the following code is better?
http://www.pageresource.com/html/frame4.htm


meanwhile, why tis error message will come up will i combine javascript to asp.net??

subject to line 54

Compiler Error Message: BC30577: 'AddressOf' operand must be the name of a method; no parentheses are needed.

if i remove the the parentheses at line 54, another error msg will come up

Compiler Error Message: BC30408: Method 'Public Sub PostSearch()' does not have the same signature as delegate 'Delegate Sub EventHandler(sender As Object, e As System.EventArgs)'.

the following is my coding :
------------------------------------------------------------------------

line 54:
<asp:button id=btn_Search runat="server" Text="Search" onClick="postSearch();"></asp:button>

------------------------------------------------------------------------
<HEAD>
<script language="javascript">

function postSearch() {

parent.center.location="top.aspx";

}
</script>
</HEAD>
------------------------------------------------------------------------


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    btn_Search.Attributes.Add("onClick", "return postSearch();")

End Sub

[ 本帖最后由 counterking 于 2-6-2006 01:16 AM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2-6-2006 01:34 AM | 显示全部楼层
why???


<script language="javascript">

function postSearch() {
parent.center.location="top.aspx"  可以运行!!


当我用下面的code时,出现error on page
parent.center.location="top.aspx?state=" + document.Form1.ddl_state[document.Form1.ddl_state.selectedIndex].value;

parent.center.location="top.aspx?area=" + document.Form1.txt_area.Text;


}

</script>
回复

使用道具 举报

发表于 2-6-2006 08:55 AM | 显示全部楼层
原帖由 counterking 于 2-6-2006 01:34 AM 发表
why???


<script language="javascript">

function postSearch() {
parent.center.location="top.aspx"  可以运行!!


当我用下面的code时,出现error on page
parent. ...


为什么需要放两次 location? 一次就够了.

parent.center.location = "top.aspx?state=" + document.Form1.ddl_state[document.Form1.ddl_state.selectedIndex].value + "&area=" + document.Form1.txt_area.Text;

在你的 top.aspx 里, Page_Load 那里只需要用以下的 code 来取得数据就可以了.

if (Request.QueryString["area"] != null && Request.QueryString["state"] != null) {
  // something...
}
回复

使用道具 举报

 楼主| 发表于 2-6-2006 10:31 AM | 显示全部楼层
1) 其实我也只是放一行code而已,其它的我是想表达那一些code可以运行,那些不可以

当我放以下的code时,按下link后出现error on page的信息

function postSearch() {
parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text;"
}

如果我这样写就没问题。。那里出错了?

function postSearch() {
parent.center.location = "top.aspx“}

2) 请看回第三贴,那个问题我到现在还是solve不到。。 为何呢? 我照住web reference 去做了....

Compiler Error Message: BC30456: 'postSearch' is not a member of 'ASP.left_aspx'.

<home>
<script language="javascript">
function postSearch() {
parent.center.location = "top.aspx"
}
</script>
</home>

-------------------------------------------------------------------------

<form name=form1 method=post runat="server">
<asp:button id=btn_Search runat="server" Text="Search"
OnClick="postSearch();">
</asp:button></FORM>

------------------------------------------------------------------------

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        btn_Search.Attributes.Add("onClick", "return postSearch();" )

End Sub

[ 本帖最后由 counterking 于 2-6-2006 10:35 AM 编辑 ]
回复

使用道具 举报

Follow Us
发表于 2-6-2006 12:06 PM | 显示全部楼层
原帖由 counterking 于 2-6-2006 10:31 AM 发表
1) 其实我也只是放一行code而已,其它的我是想表达那一些code可以运行,那些不可以

当我放以下的code时,按下link后出现error on page的信息

function postSearch() {
parent.center.location = " ...


应该这样写:

function postSearch() {
  parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text;"
  return false;
}


然后:

<asp:button id=btn_Search runat="server" Text="Search" />

然后在你的 Page_Load 里, 照旧放这个:

btn_Search.Attributes.Add("onClick", "return postSearch();" )
回复

使用道具 举报

 楼主| 发表于 2-6-2006 01:07 PM | 显示全部楼层
error on page还是出现

function postSearch() {

parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text;"
  return false;
}

注意! 我已经把

parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text;"

改去了

parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text;
回复

使用道具 举报


ADVERTISEMENT

发表于 2-6-2006 01:12 PM | 显示全部楼层
1. Error page 还是一样吗?
2. Error page 是指 left.aspx 还是 top.aspx?
3. 两个都有 error 吗?
4. 有没有写成这样: <asp:button id=btn_Search runat="server" Text="Search" />
回复

使用道具 举报

 楼主| 发表于 2-6-2006 03:49 PM | 显示全部楼层
我发觉如果我这样写,就不会显示error on page的信息,一切运行ok

parent.center.location = "top.aspx?area=cheras"

但如果我这样写

parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text

或者是

parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text;


或者是

parent.center.location = "top.aspx?state=" + document.Form1.ddl_state[document.Form1.ddl_state.selectedIndex].value

就不可以运行了....

[ 本帖最后由 counterking 于 3-6-2006 02:44 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 4-6-2006 04:09 PM | 显示全部楼层
1) 我所指的error on page 是displayed on the status bar of IE
2)在 left.aspx
3) left.aspx而已
4) 对啊,就是写成这样 <asp:button id="btn_Search" runat="server" Text="Search">

-------------------------------------------------------------------------------
<script language=javascript>
function postSearch()
{
    parent.center.location = "top.aspx?area=" + document.Form1.txt_area.Text;
}
</script>

加了蓝色那行后,一按search button, "error on page"的字就会出现在IE的staus bar,朋友说是js error..

如果只是放 parent.center.location = "top.aspx?area=cheras" 就没事

-------------------------------------------------------------------------------

<form name="form1" method="post" runat="server">
<asp:textbox id="txt_area" runat="server"></asp:textbox>
<asp:dropdownlist id="ddl_State" runat="server"></asp:dropdownlist>
<asp:button id="btn_Search" runat="server" Text="Search"></asp:button>
</form>

------------------------------------------------------------------------------

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        btn_Search.Attributes.Add("onClick", "return postSearch();")
End Sub

[ 本帖最后由 counterking 于 4-6-2006 04:33 PM 编辑 ]
回复

使用道具 举报

发表于 5-6-2006 09:25 AM | 显示全部楼层
我建议一个方法, 就是把你在 left.aspx 的 button 弄成 asp.net 看不见的 button.

首先这样写:

<input type="button" id="btn_Search" name="btn_Search" value="Search" onClick="postSearch();">

然后, 在你的 code 里, 把这行移掉, 因为你的 code 不再有 btn_Search:

btn_Search.Attributes.Add("onClick", "return postSearch();")

然后在你的 javascript, 里, 改成这样:

<script language=javascript>
function postSearch()
{
    // javascript 对名字的大小写很在意的, 你的 Form1 和 form1 是完全不同的.
    // javascript 的 textbox element 的 property 是 value, 不是 Text
   
    parent.center.location = "top.aspx?area=" + document.forms[0].txt_area.value;
}
</script>


我建议你在处理这些问题上, 你需要灵活看待各样的 code, 多参考 manual, 别太在意书本的指示.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 5-8-2025 08:20 AM , Processed in 0.099366 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表