我已成功创建用于显示错误消息的用户控件。现在一切正常但是当显示消息时,可以访问后台控件。如何禁用页面控件或页面单击或选择任何控件。当消息面板关闭时,它应启用页面控件。
我找到了答案的朋友。
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 :(得分:2)
我知道,你希望它的行为就像一个模态对话框。它可以通过简单的html + javascript来完成。 您必须创建一个覆盖整个页面的透明div叠加层,因此用户不是单击控件,而是单击div。 Z-index表示其余控件的位置。
<!-- 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 :(得分:1)
你可以简单地使用div,在CSS的帮助下,你可以像模态弹出窗口那样显示div,或者只使用jquery模态弹出窗口http://jqueryui.com/demos/dialog/或asp.net ajaxcontrol toolkit http://www.asp.net/ajax/ajaxcontroltoolkit/samples/modalpopup/modalpopup.aspx < / p>
答案 2 :(得分:0)
您是否尝试创建模态对话框?如果是,您可以使用asp.net ajax中的ModalPopupExtender控件。检查此链接: