天天看點

asp.net frameset裡一個frame中擷取下拉框、單選框的值并作為參數傳遞到另一個frame裡并顯示結果

      最近在一個項目中,由于根據需求,需要增加一個概覽頁面,也就是最高權限使用者可以對全局概況有一個總的了解,下面就來簡單介紹下,主要是對于其中實作的部分小技巧做一下總結。貼圖示例如下:

asp.net frameset裡一個frame中擷取下拉框、單選框的值并作為參數傳遞到另一個frame裡并顯示結果

      在這個頁面中一個frameset裡有三個frame,分為左中右三個部分,中間是顯示部分,右邊的上半部分是快速查詢部分,裡面主要是由三個下拉框和一個單選框組成,通過點選按鈕将參數傳遞到另外一個頁面,并且這個頁面是在中間的frame裡顯示最終的結果。

      看代碼:

    <script type="text/javascript" language="javascript">

        function openWindow()

        {

            var year = document.getElementById("ddlYear").options[document.getElementById("ddlYear").selectedIndex].text;

            var city = document.getElementById("ddlCity").options[document.getElementById("ddlCity").selectedIndex].value;

            var county = document.getElementById("ddlCounty").options[document.getElementById("ddlCounty").selectedIndex].value;

            var rbltable =document.getElementById("rblType");

            var rbs= rbltable.getElementsByTagName("INPUT");

            for(var i = 0;i<rbs.length;i++)

            {

                if(rbs[i].checked)

                {

                    var option =rbltable.cells[i].innerText;

                }

            }

            var url = "result.aspx?year=" + year + "&city=" + city + "&county=" + county + "&type=" +escape(option);

            window.open(url,'center','height=100%,width=100%,status=no,toolbar=no,menubar=no,scrollbars=no,location=no');

        }

    </script>

...

<input type="button" value="查詢" OnClick="openWindow()" />

....

以上是在js中擷取伺服器端控件dropdownlist和radiobuttonlist控件值的方法:

dropdownlist控件:

var city = document.getElementById("ddlCity").options[document.getElementById("ddlCity").selectedIndex].value;

------------------------------------------------------------------------------------------------------------------------------------radiobuttonlist控件:

var rbltable =document.getElementById("rblType"); 

var rbs= rbltable.getElementsByTagName("INPUT"); 

for(var i = 0;i<rbs.length;i++) 

      if(rbs[i].checked) 

     { 

          var option =rbltable.cells[i].innerText; 

     } 

}

這裡其實可以在背景cs檔案裡擷取到控件的值,并實作跳轉,不錯,是可以,但是會有點顯示的小問題,就是按鈕點選過後,radiobuttonlist控件裡的文字變大了,很是難看。

背景裡擷取值很簡單:

            string year = Request.QueryString["year"].ToString();

            string city = Request.QueryString["city"].ToString();

            string county = Request.QueryString["county"].ToString();

            string type = Server.UrlDecode(Request.QueryString["type"].ToString()).ToString();

然後做簡單處理即可。中間的frame後來的顯示效果如下圖:

asp.net frameset裡一個frame中擷取下拉框、單選框的值并作為參數傳遞到另一個frame裡并顯示結果

繼續閱讀