Как отключить элементы управления на странице ASP.NET, когда выбран контроль пользователя? - PullRequest
5 голосов
/ 11 декабря 2010

Я успешно создал пользовательский элемент управления для отображения сообщения об ошибке. теперь все работает нормально, но когда отображается сообщение, можно получить доступ к фоновым элементам управления. как отключить элементы управления страницы или страницы от нажатия или выбора любых элементов управления. и когда панель сообщений закрыта, она должна активировать элементы управления страницей.

я нашел ответ, друзья.

void DisableControls(Control parent, bool status)
    {
    foreach (Control c in parent.Controls)
            {
                if (c is DropDownList)
                {
                    ((DropDownList)(c)).Enabled = status;
                }
                if (c is Button)
                {
                    ((Button)(c)).Enabled = status;
                }
                if (c is TextBox)
                {
                    ((TextBox)c).Enabled = status;
                }

                if (c is RadioButton)
                {
                    ((RadioButton)c).Enabled = status;
                }
                if (c is ImageButton)
                {
                    ((ImageButton)c).Enabled = status;
                }
                if (c is CheckBox)
                {
                    ((CheckBox)c).Enabled = status;
                }
                if (c is DropDownList)
                {
                    ((DropDownList)c).Enabled = status;
                }
                if (c is HyperLink)
                {
                    ((HyperLink)c).Enabled = status;
                }
                if (c is GridView)
                {
                    ((GridView)c).Enabled = status;
                }
                if (c is Table)
                {
                    ((Table)c).Enabled = status;
                }
                if (c is Menu)
                {
                    ((Menu)c).Enabled = status;
                }
                if (c is TreeView)
                {
                        ((TreeView)c).Enabled = status;
                    } 
}
        }

Ответы [ 3 ]

2 голосов
/ 20 декабря 2010

Понятно, вы хотите, чтобы он вел себя как модальный диалог.Это можно сделать с помощью простого html + javascript.Вы должны создать прозрачное наложение div, которое распространяется на всю страницу, чтобы пользователь вместо щелчка по элементам управления нажимал на div.Z-индекс указывает положение над остальными элементами управления.

<!-- Div Overlay -->
<div id="div-overlay" style="position: absolute; height: 100%; width: 100%; z-index: 200; display: none; opacity: 0.0"></div>

<!-- Scripts to show/hide overlay -->
<script type="text/javascript">
function showOverlay() {
    var e = document.getElementById('div-overlay');
    e.style.display = 'block';
}

function hideOverlay() {
    var e = document.getElementById('div-overlay');
    e.style.display = 'none';
}
</script>

Надеюсь, это поможет.

1 голос
/ 11 декабря 2010

Вы можете использовать просто div и с помощью CSS вы можете отображать этот div как модальное всплывающее окно или просто использовать jquery модальное всплывающее окно http://jqueryui.com/demos/dialog/ или набор инструментов asp.net ajaxcontrol http://www.asp.net/ajax/ajaxcontroltoolkit/samples/modalpopup/modalpopup.aspx

0 голосов
/ 11 декабря 2010

Вы пытаетесь создать модальный диалог?Если да, вы можете использовать элемент управления ModalPopupExtender из asp.net ajax.проверьте эту ссылку:

http://msdn.microsoft.com/en-us/magazine/cc164247.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...