繁体   English   中英

在DOM窗口中修改控件

[英]Modifying controls in a DOM window

免责声明:我是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窗口中的控件)。

我不得不通过javascript处理我的问题,因为如果要修改* .aspx.cs中的控件,它将需要一个postBack事件来创建我的问题(在整个浏览器中加载DOMwindow-page)。

我创建了一个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能够访问它)。 因此,在“标题”部分中,一旦使用jQuery .ready()函数成功加载了页面,就调用了toggleOptions:

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

由于复选框(chOptions)最初呈现为未选中状态,因此toggleOptions会引起注意并隐藏ddOptions。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM