2013-05-07 77 views
0

聲明:我是ASP.net開發新手,可能會錯誤地使用某些單詞。在DOM窗口中修改控件

我使用的插件jquery.DOMwindow.js,來源是在這裏:http://swip.codylindley.com/jquery.DOMWindow.js

在我的頁面「home.aspx」,我打開一個網頁,將有一定的asp:複選框就可以控制。這些控件位於我的'DOMexample.aspx'頁面上。

<a href="DOMexample.aspx" class="fixedAjaxDOMWindow" runat="server"> 
Check some check boxes. </a> 

    <script type="text/javascript"> 
     $('.fixedAjaxDOMWindow').openDOMWindow({ 
      loaderImagePath: '../../images/ajax-loader.gif', 
      height: 1200, 
      width: 870, 
      borderColor: '', 
      borderSize: '0', 
      overlayColor: '#000', 
      overlayOpacity: '23', 
      loader: 1, 
      loaderHeight: 16, 
      loaderWidth: 17, 
      modal: 1, 
      eventType: 'click', 
      windowSource: 'ajax', 
      windowHTTPType: 'get', 
      windowPadding: 0 

     });  
    </script> 

在「DOMexample.aspx」,我有一些複選框是,選中時,會顯示在下一個下拉到它。

<asp:CheckBox ID="chOptions" Text="Options" AutoPostBack="True" runat="server" /> 
<asp:DropDownList ID="ddOptions" runat="server" /> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    CheckSessionTimeout(); 
    chOptions.CheckedChanged += new EventHandler(this.chOptions_CheckedChanged); 
    ddOptions.Items.Add("Select Option Level"); 
    ddOptions.Visible = false; 

} 

void chOptions_CheckedChanged(object sender, EventArgs e) 
{ 
    if (chOptions.Checked == true) 
     ddOptions.Visible = true; 
    else 
     ddOptions.Visible = false; 
} 

我的問題是,當我嘗試開始調試,我能拉起我的DOM窗口,但是當我檢查框,它似乎像瀏覽器正試圖加載「DOMexample.aspx」整個瀏覽器(而不是刷新DOM窗口中的控件)。

+0

「openDOMWindow」是什麼世界? – epascarello 2013-05-07 18:22:51

+0

看起來您正在添加回發事件! – epascarello 2013-05-07 18:23:44

+0

@epascarello我剛剛注意到我正在使用jQuery插件:jquery.DOMwindow.js並在此處使用示例代碼:[link](http://swip.codylindley.com/DOMWindowDemo.html) – cdpalmer 2013-05-07 18:31:55

回答

0

我不得不通過javascript來解決我的問題,因爲如果我要修改* .aspx.cs中的控件,它將需要一個postBack事件來創建我的問題(其中DOMwindow頁面在整體中加載瀏覽器)。

我創建了一個javascript函數'toggleOptions',它將切換下拉框的可見性。

<asp:CheckBox ID="chOptions" 
    onclick="toggleOptions();" 
    Text="Options" 
    runat="server" /> 

function toggleOptions() { 
    var chOpt = $get('<%=chOptions.ClientID %>'); 
    if (chOpt.checked) { 
     $get('<%=ddOptions.ClientID %>').style.visibility = 'visible'; 
    } else { 
     $get('<%=ddOptions.ClientID %>').style.visibility = 'hidden'; 
    } 
} 

而且進一步,我想有下拉負載看不見,但還是被渲染(它需要以呈現的JavaScript來訪問它)。因此,在「頭」節,我打了一個電話給toggleOptions一旦頁面使用jQuery。就緒()函數被成功加載:

<script type="text/javascript"> 
    $(document).ready(function() { 
     toggleOptions(); 
    }); 
</script> 

由於該複選框(chOptions)最初呈現爲未選中,toggleOptions注意並隱藏ddOptions。