适用范围广泛的Modalpopupextender

时间:2011-08-15 14:11:46

标签: asp.net firefox user-controls asp.net-ajax confirmbuttonextender

我正在尝试构建一个modalpopupextender,以及一个面板和内容,并且需要在应用程序范围内进行构建。我正在考虑在主页面上创建它,所以它可以在所有页面上访问,但我需要面板内的内容(我可能需要添加的任何内容)从母网页面外部可见和可编辑。 目前,我正在研究这个问题,但还没有弄清楚如何让它可以访问其他页面和类,所以希望能有一些帮助。

基本上,我想要的是在不久的将来更多地使用这个想法,以便在任何Web应用程序上使用一致的东西,并且可以完全自定义。我遇到的问题是“基础知识”,比如让应用程序可以访问它,允许从服务器端和客户端自定义面板内的一些控件,并从那里改进所有内容。

我尝试为它创建一个用户控件,但似乎没有用。我不是asp.net的专家(几年的经验),甚至更少的ajax,所以任何帮助都表示赞赏。 如果有人有任何问题,请告诉我。

修改 我现在已经成功地以某种方式在用户控件中创建了情绪,它几乎完成了。 目前,我无法解决2个问题:

  1. 在Firefox 3.5上发生的该死的闪烁(企业版,无法触及此)。偶尔在页面加载期间(在Page_Init或Page_PreInit事件附近的某处,不确定),我在屏幕上快速闪烁的模态,仅在发生回发时。我已经做了一些解决方法,比如设置样式显示:无,但问题仍然存在。需要一些帮助。
  2. 我需要一个有两种行为的模态,比如Windows弹出窗口。一个是信息,比如仅显示带有一些按钮的消息,另一个是问题。对于问题,我需要使用ConfirmButtonExtender,因此需要告诉这个确认扩展器和外部按钮的模态(意味着一个不在用户控件内的按钮,这意味着它在同一个UpdatePanel之外)作为确认扩展器和模态扩展器)将是他们的TargetControlID。现在,我无法解决这个问题,所以我想在UC和UpdatePanel中创建一个始终是TargetControlID的按钮。当弹出窗口是信息性的时,它将作为虚拟隐藏按钮(通过方法在服务器端调用信息消息),当它是一个问题时,它将收到响应。按钮执行的方法将通过委托进行设置,因此任何方法都可以在单击时运行,按下模态上的“是”按钮(尚未准备就绪,我不确定它是否可行,或者即使这是一个好主意)。 对第二种选择的任何想法都表示赞赏。

2 个答案:

答案 0 :(得分:1)

母版页上的元素很容易从母网页外部显示和编辑。

在此示例中,母版页具有您想要从其他页面读取/写入的标签

<asp:Label ID="lblSubTitle" runat="server" Text="sub title"></asp:Label>

在母版页的代码文件中,为副标题创建一个属性:

public partial class MainMasterPage : System.Web.UI.MasterPage
{
    public string SubTitle
    {
        get
        {
            return lblSubTitle.Text;
        }
        set
        {
            lblSubTitle.Text = value;
        }
    }
}

然后,任何使用此母版页作为其MasterPageFile的页面都可以找到字幕属性并读取或写入。

// get a reference to the masterpage
MainMasterPage master = (MainMasterPage)Master;

//set it to the value you want.
master.SubTitle = "Custom sub title";

答案 1 :(得分:0)

我已经解决了这个问题并创建了一个用户控件,其中包含用于显示自定义消息的modalpopup。 许多方面都是公开的,因此它允许高度自定义,模态和它的自定义按钮就像一个魅力。我仍然有关于闪烁的问题,但这是另一个问题。