I have a long page of content and one WebDialogWindow(which is defined at top of the page) that is called from multiple places on the page. I have the WebDialogWindow setup to be centered and modal. Works great until you start scrolling down the page and click a link. It doesn't show up centered correctly, it shows up cutoff or off the page. Is there anyway to set the WebDialogWindow position based on position on the page?
I am having this same issue since I've upgraded my app to .Net 4. Infragistics version 12.1.20121.2236.
It works fine in Chrome but not in IE8 (with IE7 standards mode set). It worked fine with CLR2 version but is aligning to the bottom of the page in CLR4.
Did you manage to resolve the issue as it sounds very similar?
Hi Neharoy,
If modal property of dialog is enabled, then in order to work properly, it should be located outside container which should be disabled. Because one of the parts of modal functionality is temporary setting tabIndexes of all html elements to -1. So, html element of dialog should be located outside of other html elements. The best configuration is to put modal WebDialogWindow directly into <form> after all other controls.
I am having a problem with the webdialog window not applying the modal ( or is not locking the whole screen) totally when the window is displayed as a pop up.
Hi Rob,
It would be great to have a simple aspx which can be used to reproduce that issue. If that is not possible or sample is too large, then you may try do following. The most reliable way to ensure that modal WebDialogWindow works correctly is:
1. Put dialog directly into <form> outside any (div, table, span, etc.) containers.2. Dialog should appear as the last control/element on page: at the very bottom of aspx.
If similar is not possible within your application, then the last resort is to move dialog into form on client. However, in case of modal dialog, the dialog on load/reload of page must be hidden. Otherwise, after a postback, an exception on unload will be raised at the time when dialog will try to clean up its javascript objects. So, application additionally will need to process OnPreRender event and hide dialog explicitly. Below is example which moves dialog on client to the form and hides it on load/reload. You may copy/paste these codes in any temporary website and check how it works.
aspx.cs:
protected override void OnPreRender(EventArgs e){ this.WebDialogWindow1.WindowState = Infragistics.Web.UI.LayoutControls.DialogWindowState.Hidden; base.OnPreRender(e);}
aspx:
<script type="text/javascript">function WebDialogWindow1_Initialize(sender, eventArgs){ var elem = sender.get_element(); elem.parentNode.removeChild(elem); document.forms[0].appendChild(elem);}function showDialog(){ var dialog = $find('<%=WebDialogWindow1.ClientID%>'); dialog.show();}</script><input value="show" type="button" onclick="showDialog()" /><div style="border:1px solid red;width:1000px;height:1000px;"></div><table> <tr> <td> <ig:WebDialogWindow ID="WebDialogWindow1" runat="server" Width="200px" Height="200px" Moveable="false" Modal="true" InitialLocation="Centered" MaintainLocationOnScroll="true" WindowState="Hidden"> <ClientEvents Initialize="WebDialogWindow1_Initialize"> </ClientEvents> <ContentPane> <Template> <asp:Button ID="Button1" runat="server" Text="Button" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </Template> </ContentPane> </ig:WebDialogWindow> </td> </tr> <tr> <td> <input value="show" type="button" onclick="showDialog()" /> </td> </tr></table><input value="show" type="button" onclick="showDialog()" /><div style="border:1px solid red;height:1000px;"></div><input value="show" type="button" onclick="showDialog()" />