2010-05-17 56 views
2

我正在开发一种框架,将在网站工作,赢得的,所以我有这样的接口:弹出控制

public interface IViewsManager 
{ 
    ... 
    void ShowMessage(); 
    ... 
} 

而且我那叫一个弹出式的胜利实施从另一个DLL控制。我的问题是,当我尝试实现它的网络环境,我不得不从另一个调用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,并根据环境调用此时,相应的弹出式控件。

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

+0

你不明白你的意思,“调用适当的弹出控件”。您的代码在页面渲染并发送到浏览器之前正在运行。你的意思是,“添加一个弹出控件到页面”,或者,正如我建议的那样,“将JavaScript添加到页面中,当它加载时将生成一个弹出窗口”? – 2010-05-17 22:04:47

回答

0

感谢您的帮助,但我更关心动态地创建控件。我这样做是为了解决我的问题。 我创建了一个动态控件(来自Infragistics套件)并将其添加到页面Form中,这可以完美地从单独的DLL中运行。

0

一个简单的方法来做到这一点是JQuery的dialog插件。它有一个模式属性,如果设置为true,将变灰下面的网页并进行对话模态弹出。

+0

感谢您的回答。但我的问题不是弹出控件,而是从代码后面显示它的方式。 – Argons 2010-05-17 13:34:48

0

这是我要做的事:

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

我觉得你有点糊涂......

您可以

不是“从网页代码背后显示控件”从本质上讲,如果你想弹出一个对话框,你可以利用JavaScript函数“在客户端”这样做,背后是在服务器上执行后面的aspx页面代码,这意味着在视觉上你不能雷尔做太多可言,除非你想你主持人看到它和其他人。

还有另一个选项可以显示一个对话框,这就是嵌入某种形式的像Silverlight,闪光或在页面内容中的Active X控件插件然后上负载有它本身加载。

如果我你的情况的理解是正确的,你尝试可能加载Active X控件和索姆原因,这个Active X控件加载,但是空白的(所以它不是真的装)。这里

通常的嫌疑人都下到ActiveX组件和安全的注册。

当然我只是猜测,这是一个Active X问题。

简而言之...

在网页上打开一个对话框,就是这么简单...

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

如果你想采取进一步的你要么需要渲染你的对话框, html内容或使用javascript学习一些魔术技巧。

你会怎么说客栈集成到你的小框架...这完全是另外一个故事。 因为你的代码是一个DLL,你可以参考它很轻松了。

也许在您的GetwebDialog()方法(或任何您所称的方法)中,您可以将页面上的元素或控件传递给您希望将对话框嵌入的页面,然后仅向其中添加新的用户控件实例。

看起来像最安全/最干净的方式去找我。

+0

我在这里覆盖了很多东西,很抱歉,但问题有点含糊,如果您提供更多的细节,我应该可以在这个主题上添加更多的灯光。 – War 2010-05-17 21:47:16