2010-12-11 2 views
5

I Успешно создан пользовательский элемент управления для отображения сообщения об ошибке. теперь все работает нормально, но когда сообщение отображается, можно получить доступ к элементам управления фоном. как отключить элементы управления страницы или страницы, нажав или выбрав любые элементы управления. и когда панель сообщений закрыта, она должна включать элементы управления страницей.Как отключить элементы управления на странице ASP.NET при выборе usercontrol?

Я нашел ответы друзей.

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; 
        } 
} 
     } 
+0

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

+0

Я думаю, вы обнаружите, что можете значительно упростить свой код *, просто используя следующее: 'foreach (Control c в parent.Controls) {c.Enabled = false; } 'потому что Enabled является свойством' Control'. – Crisfole

+0

спасибо за ответ. Я пробовал это уже, но не могу сделать это успешно. он выдает ошибку. –

ответ

2

Я вижу, вы хотите, чтобы вести себя как модальный диалог. Это можно сделать с помощью простого 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

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

+0

Нет, я не хочу использовать ajax в этом, потому что у меня есть некоторые проблемы, такие как мерцание страницы и т. Д. –

+0

Используйте JQuery, если вы можете или просто использовать CSS для отображения, как модальное всплывающее окно, а затем все остальные элементы управления не будут доступны. –

+0

можете ли вы привести мне пример –

0

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

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

+0

no am not using ajax in it –

+0

Вы пытались использовать этот элемент управления? Я не думаю, что у вас появятся какие-то проблемы, такие как мерцание страницы. – sid

+0

Когда страница перезагружается или обновляется, всплывающее окно модели просто приходит и уходит за несколько миллисекунд –

Смежные вопросы