0

免責事項: 私は ASP.net 開発に不慣れで、いくつかの単語を間違って使用している可能性があります。

私はプラグイン jquery.DOMwindow.js を使用しています。ソースはこちらです: http://swip.codylindley.com/jquery.DOMWindow.js

私のページ「home.aspx」で、いくつかのasp:CheckBoxコントロールを持つページを開いています。これらのコントロールは、私の '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 ウィンドウのコントロールを更新します)。

4

1 に答える 1

0

*.aspx.cs のコントロールを変更する場合、問題を引き起こす postBack イベントが必要になるため、javascript を使用して問題に対処する必要がありました (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 がアクセスできるようにするためにレンダリングする必要がある)。したがって、「head」セクションでは、ページが jQuery .ready() 関数を使用して正常にロードされたら、toggleOptions を呼び出しました。

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

チェックボックス (chOptions) は最初はチェックされていない状態でレンダリングされるため、toggleOptions は注意を払い、ddOptions を非表示にします。

于 2013-05-09T17:23:21.137 に答える