以前收集的一些资料---如何使用ASP动态生成页面的祯结构

发表于:2007-06-30来源:作者:点击数: 标签:
让你的ASP控制Frame 我以前说过使用response.redirect是不能够跳到另外一个Frame的把,呵呵,那么我们怎么来使用ASP来控制frame呢? 下面将提供一个方法来解决这个问题。 事实上,一共有两种方法控制ASP生成的HTML显示在哪一个Frame中。 简单的是设置HTML的Fo
                  让你的ASP控制Frame
我以前说过使用response.redirect是不能够跳到另外一个Frame的把,呵呵,那么我们怎么来使用ASP来控制frame呢?
下面将提供一个方法来解决这个问题。
事实上,一共有两种方法控制ASP生成的HTML显示在哪一个Frame中。
简单的是设置HTML的Form元素的基本标志即可。这个方法可以解决大多数简单情况下的页面定位问题。
这个方法大家应该都见过,我就不详细说明了。
但是问题是当出现一些复杂的情况时,我们怎么来控制redirect的跳转呢?
下面将给出一个例子程序(其实是个很有用的例子程序)
它将动态生成Frame并且可以在你的网站上增加4个搜索引擎(如果你确实
想把这段代码加入到你的网站上的话,呵呵)
用FP随便写一个HTML页面,文件名为frsearch.htm分为两个Frame
左边的Frame里面有一个用来输入查询条件的文本框(name为searchTopic),
再外加4个checkbox(表示4个查询站点
内容分别是:这四个单选框的name分别为AltaVista,mskb, news, AVDF,4个的value都为ON) ,
其中还专门给mskb(MS Knowledge Base)做一个下拉框,用来选择topic用的,
name是SearchArea),还有两个单选框,name都是viewtype,最后是一个提交按钮。
然后在你的页面中加入下面两句话。
<base target="_top">
<form action="doSearch.asp">

文件名为doSearch.asp
<%
    searchTopic = request.form ("SearchTopic")
    searchTopic = server.urlencode(searchTopic)
    ‘’只给微软的KB用的
    searchArea = request.form ("SearchArea")           
    ‘’frame的显示形式
    viewtype = request.form("viewtype")                

    ‘’你要显示的frame数目
    frcount = 0                       
    if request.form("AltaVista") = "ON" then
            AVurl = "http://www.altavista.yellowpages.com.au/cgi-bin/telstra?pg=q&what=web&fmt=.&q=" & SearchTopic
            frcount = 1
    end if
    if request.form("mskb") = "ON" then
            MSurl = "http://search.microsoft.com/searchbin/kb/mts_search.idq?Hdr=@KBArea&Scope=/kb/articles/&Tmplt=mts_search&SWR=F&Sort=rank[d]&Purl=/kb&Pfx=kb&Base=kb&sl=NULL&KBD=" & SearchArea & "&maxp=25&maxr=100&Sz=" & SearchTopic
            frcount = frcount + 1
    end if
    if request.form("AVDF") = "ON" then
            AVDFurl = "http://www.gui.com.au/gcgi/glance?tp=search.gl&query=" & SearchTopic & "&case=on&whole=on&area=All+Issues&errors=0+%28Exact+match%29&maxfiles=10&maxlines=10"
            frcount = frcount + 1
    end if
    if request.form("news") = "ON" then
            NEWSurl = "http://www.gui.com.au/gcgi/news_search?query=" & SearchTopic &"&maxresults=50&rtype=1"
            frcount = frcount + 1
    end if  
    
    if viewtype = "frame" then
        ‘’动态生成frame
            splitpct = fix(100/frcount)
            pcts = Cstr(splitpct)
            if frcount = 1 then
                    pctstr = pcts & "%"
            end if
            if frcount > 1 then
                    pctstr = pctstr & "," & pcts & "%"
            end if
            if frcount > 2 then
                    pctstr = pctstr & "," & pcts & "%"
            end if
            if frcount = 4 then
                    pctstr = pctstr & "," & pcts & "%"
            end if
    end if
%>



<Script language="JavaScript" for="window" event="onLoad()">
        <!--
          <%if AVurl <> "" then %>
                window.open ("<%=AVurl %>")
          <% end if %>
          <%if AVDFurl <> "" then %>
                window.open ("<%=AVDFurl %>")
          <% end if %>
          <%if NEWSurl <> "" then %>
                window.open ("<%=NEWSurl %>")
          <% end if %>
          <%if MSurl <> "" then %>
                window.open ("<%=MSurl%>")
          <% end if %>
          
          Window.location.href = "frsearch.htm"
          -->
</Script>

<html>
<head>
<title>4个搜索引擎</title>
</head>

<%if viewtype = "frame" then %>

<frameset cols="20%,80%">
    <frame src="searchside.htm">
    <frameset rows="<%=pctstr%>">
        <%if AVurl <> "" then %>
                <frame src="<%=AVurl%>" name="AltaVista">
        <% end if %>
        <%if AVDFurl <> "" then %>
                <frame src="<%=AVDFurl%>" name="AVDF">
        <% end if %>
        <%if NEWSurl <> "" then %>
                <frame src="<%=NEWSurl%>" name ="news">
        <% end if %>
        <%if MSurl <> "" then %>
                <frame src="<%=MSurl%>" name = "mskb">
        <% end if %>
    </frameset>
    <noframes>
    <body>
    <p>This web page uses frames, but your browser doesn‘’t support them.</p>
    </body>
    </noframes>
</frameset>

原文转自:http://www.ltesting.net