C# 网页中dll的弹出控件

C# 网页中dll的弹出控件,c#,asp.net,visual-studio,C#,Asp.net,Visual Studio,我正在开发一种框架,它将在web中工作并获胜,因此我有以下界面: public interface IViewsManager { ... void ShowMessage(); ... } 我有win的实现,从另一个dll调用一个弹出控件。我的问题是,当我尝试在web环境中实现它时,我必须从另一个dll调用一个弹出控件,我想用灰色层显示弹出窗口和网页,我不知道如何做 结构如下所示: 1) UI.Common a) IViewsManager 2) UI.Wi

我正在开发一种框架,它将在web中工作并获胜,因此我有以下界面:

public interface IViewsManager
{
    ...
    void ShowMessage();
    ...
}
我有win的实现,从另一个dll调用一个弹出控件。我的问题是,当我尝试在web环境中实现它时,我必须从另一个dll调用一个弹出控件,我想用灰色层显示弹出窗口和网页,我不知道如何做

结构如下所示:

1) UI.Common

   a) IViewsManager

2) UI.Win

   a) ViewsManagerWin

3) UI.Web

   a) ViewsManagerWeb

4) UI.Controls

   a) PopupControlWin

   b) PopupControlWeb

5) Web Application
在我的web应用程序中,我调用IViewsManager.ShowMessage,根据环境的不同,它调用适当的弹出控件


请,任何帮助都将不胜感激。提前感谢。

一个简单的方法就是JQuery插件。它有一个模态属性,如果设置为true,将灰显底层网页并使对话框成为模态弹出窗口。

我就是这样做的:

protected void DisplayAlert(string message)
    {
        ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), string.Format("alert('{0}');", message.Replace("'", @"\'")), true);
    }

我觉得你有点困惑

您不能“显示代码隐藏页面中的控件”

基本上,如果你想弹出一个对话框,你可以在“客户端”使用Javascript函数来实现,aspx页面代码隐藏在服务器上执行,这意味着在视觉上你根本做不了什么,除非你想让你的主机看到它,而不是其他任何东西

还有另外一个选项可以显示对话框,那就是在页面内容中嵌入某种形式的插件,如silverlight、flash或active x控件,然后在加载时自行加载

如果我对您的情况的理解是正确的,那么您可能正在尝试加载一个活动的x控件,并且出于某些原因,此活动的x控件已加载,但为空(因此它实际上未加载)

这里常见的疑点是activex组件的注册和安全性

当然,我只是猜测这是一个活跃的x问题

简单地说

在网页上打开一个对话框非常简单

<script>
    Alert("Hello world !!!");
</script>

警报(“你好,世界!!!”;
如果您想更进一步,您需要将对话框呈现为html内容,或者学习使用javascript的一些魔术

你将如何将该客栈集成到你的小框架中。。。那完全是另一回事。 因为您的代码是一个dll,所以可以很容易地引用它

也许在GetwebDialog()方法中(或无论您如何称呼它),您可以将希望嵌入对话框的页面上的元素或控件传递给它,然后只需向其添加一个新的用户控件实例


对我来说似乎是最安全/最干净的方式。

谢谢你的帮助,但我更擅长动态创建控件。我这样做是为了解决我的问题。
我动态创建了一个控件(来自Infragistics suite)并将其添加到页面表单中,这在一个单独的DLL中非常有效。

谢谢您的回答。但我的问题不是弹出控件,而是如何从代码隐藏中显示它。我在这里介绍了很多内容,抱歉,但问题有点模糊,如果您提供更多详细信息,我应该能够为主题添加更多的说明。不清楚“调用适当的弹出控件”是什么意思。在呈现页面并将其发送到浏览器之前,您的代码隐藏正在运行。您的意思是“向页面添加弹出控件”,还是像我建议的那样,“向页面添加javascript,以便在加载时生成弹出窗口”?