|
Rank: Member Groups: Member
Joined: 5/28/2008 Posts: 11
|
Hi. I've been working with the TreeView and added context menu enabling me to open some different dialogs. I've encountered some problem that once I perform a "button click" event, it creates some problem afterwards, and my some of my dialog's content get disabled. For example: I have in the dialog some text boxes and some check boxes. the text boxes gets disabled (cannot get focus on the text box, cannot change the text), whereas the check boxes remain enabled. I've debugged and found out that the server side code ends with no problem, however I did notice that the client side get stuck somehow. I've looked into the mather and tried some trick of "waking up the client side" by putting some "onLoad=focus()" on the <form> tag of the aspx. Well, this solved my problem and I got no "disabled dialog content", but it worked only for those dialog with url content in it (since I put the onLoad=focus()) on the contended url. However, for dialog with no content url it is still "getting stuck", and this trick didn't work, even after trying to run "focus()" on the current page. Does anyone has any solution for this? Are you aware of something that might make the "Dialog" code get stuck? Thanks a lot.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Hi,
We are not aware of any such problems. Can you create a test page that demonstrates the problem?
Thanks
|
|
Rank: Member Groups: Member
Joined: 5/28/2008 Posts: 11
|
Hi, Thanks for your really quick reply. I've created some test page, try the following scenario. scenario: 1. click the button "show dialog2" 2. dialog will be shown. try to put some text inside the textbox, now it is possible. 3. close this dialog by "cancel" 4. click the button "show dialog1" 5. dialog will be shown with content url in it (www.google.com) 6. close this dialog by "cancel" 7. click again the button "show dialog2" 8. dialog will be shown. try to put some text inside the textbox, but now it is diabled. (it do work sometimes, but most of the times it isn't) note the events on the code for each of the buttons/dialogs. this flow is important for my original code. now adding my code. Thanks a lot!!
Code: HTML/ASPX
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Assembly="EO.Web" Namespace="EO.Web" TagPrefix="eo" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript">
function ReloadUpdatePnl()
{
__doPostBack('updatePnl', '');
}
</script>
<ajax:ScriptManager runat="server" ID="scrMan1" />
<ajax:UpdatePanel ID="updatePnl" runat="server">
<ContentTemplate>
<div>
<input type="button" id="btnShowDialog1" value="show dialog1" onclick="eo_GetObject('dialog1').show(true);" />
<br />
<input type="button" id="btnShowDialog2" value="show dialog2" onclick="eo_GetObject('dialog2').show(true);" />
</div>
<eo:Dialog runat="server" id="dialog1" ContentUrl="http://www.google.com"
CancelButton="btnCancelDialog1" ClientSideOnCancel="ReloadUpdatePnl"
Width="400px" Height="400px">
<FooterStyleActive CssText="border-right: #22456a 1px solid; padding-right: 4px; border-top: #7d97b6 1px solid; padding-left: 4px; border-left-width: 1px; font-size: 11px; border-left-color: #728eb8; padding-bottom: 4px; color: white; padding-top: 4px; border-bottom: #22456a 1px solid; font-family: verdana"></FooterStyleActive>
<HeaderStyleActive CssText="text-align:center; border-right: #22456a 1px solid; padding-right: 4px; border-top: #ffbf00 3px solid; padding-left: 4px; font-weight: bold; font-size: 11px; padding-bottom: 2px; color: white; padding-top: 2px; border-bottom: #22456a 1px solid; font-family: verdana;"></HeaderStyleActive>
<ContentStyleActive CssText="border-right: #22456a 1px solid; padding-right: 4px; border-top: #7d97b6 1px solid; padding-left: 4px; border-left-width: 1px; font-size: 11px; border-left-color: #728eb8; padding-bottom: 4px; color: white; padding-top: 4px; border-bottom: #22456a 1px solid; font-family: verdana"></ContentStyleActive>
<FooterTemplate>
<table>
<tr>
<td>
<asp:Button ID="btnCancelDialog1" runat="server" Text="cancel" />
</td>
</tr>
</table>
</FooterTemplate>
</eo:Dialog>
<eo:Dialog runat="server" id="dialog2"
CancelButton="btnCancelDialog2" ClientSideOnCancel="ReloadUpdatePnl"
Width="400px" Height="400px">
<FooterStyleActive CssText="border-right: #22456a 1px solid; padding-right: 4px; border-top: #7d97b6 1px solid; padding-left: 4px; border-left-width: 1px; font-size: 11px; border-left-color: #728eb8; padding-bottom: 4px; color: white; padding-top: 4px; border-bottom: #22456a 1px solid; font-family: verdana"></FooterStyleActive>
<HeaderStyleActive CssText="text-align:center; border-right: #22456a 1px solid; padding-right: 4px; border-top: #ffbf00 3px solid; padding-left: 4px; font-weight: bold; font-size: 11px; padding-bottom: 2px; color: white; padding-top: 2px; border-bottom: #22456a 1px solid; font-family: verdana;"></HeaderStyleActive>
<ContentStyleActive CssText="border-right: #22456a 1px solid; padding-right: 4px; border-top: #7d97b6 1px solid; padding-left: 4px; border-left-width: 1px; font-size: 11px; border-left-color: #728eb8; padding-bottom: 4px; color: white; padding-top: 4px; border-bottom: #22456a 1px solid; font-family: verdana"></ContentStyleActive>
<ContentTemplate>
<table style="color:Black">
<tr>
<td>
this is an example of dialog2
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtText" runat="server" />
</td>
</tr>
</table>
</ContentTemplate>
<FooterTemplate>
<table>
<tr>
<td>
<asp:Button ID="btnCancelDialog2" runat="server" Text="cancel" />
</td>
</tr>
</table>
</FooterTemplate>
</eo:Dialog>
</ContentTemplate>
</ajax:UpdatePanel>
</form>
</body>
</html>
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Hi,
Just wanted to let you know that we are still working on this issue. We will post again as soon as we need anything else from you or have a solution for you.
Thanks
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Hi,
We have posted a new build that should fix the issue. Please see your private messages for download location.
Thanks
|
|
Rank: Member Groups: Member
Joined: 5/28/2008 Posts: 11
|
Thanks a lot for your help and the quick solution! Is solved my problem perfectly (plus I gained some speed up to some slow parts of my application)
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Cool. Thanks for letting us know!
|
|
Rank: Member Groups: Member
Joined: 5/28/2008 Posts: 11
|
Hi. I've got the previous problem fixed as I've already mentioned, but now I have a new problem. I have the version you've sent me regarding the previous problem (5.0.55.2) The new problem:When I open a new dialog with a content url, and clicks on the defined "close button", it is supposed to perform a postback for the update panel, and afterwards some TextBox that is not defined as "ReadOnly" suddenly becomes as "ReadOnly" (checked on the code, it is defined as readonly=false but it is impossible to write inside it). Very similiar to the previous problem. Attached is a test page demonstrating the problem. Thanks in advance.
Code: HTML/ASPX
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Assembly="EO.Web" Namespace="EO.Web" TagPrefix="eo" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>test bug</title>
<script language="javascript" type="text/javascript">
function updatePnlPostBack()
{
__doPostBack('updatePnl', '');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ajax:ScriptManager runat="server" ID="scrMan1" />
<ajax:UpdatePanel ID="updatePnl" runat="server">
<ContentTemplate>
<div>
<asp:TextBox ID="txtBoxToBeDisabled" runat="server" Text="this textbox will be readonly after the dialog is closed" Width="400px" />
<br />
<input type="button" runat="server" id="btn" value="click here to open dialog" onclick="eo_GetObject('dialog').show(true);" />
</div>
<eo:Dialog runat="server" id="dialog" ContentUrl="http://google.com"
CancelButton="btnCloseDialog"
ClientSideOnCancel="updatePnlPostBack"
BorderStyle="Solid" CloseButtonUrl="00070101" AllowResize="false" ControlSkinID="None"
Width="420px" BorderWidth="1px" Height="410px" ShadowColor="LightGray" BorderColor="#335C88" ShadowDepth="3">
<FooterStyleActive CssText="font-family:Tahoma;font-size:11px;padding-bottom:4px;padding-left:4px;padding-right:4px;padding-top:4px;"></FooterStyleActive>
<HeaderStyleActive CssText="padding-right: 4px; padding-left: 4px; font-size: 11px; background-image: url(00070104); padding-bottom: 3px; padding-top: 3px; font-family: tahoma"></HeaderStyleActive>
<ContentStyleActive CssText="background-color:#e5f1fd;border-top-color:#335c88;border-top-style:solid;border-top-width:1px;"></ContentStyleActive>
<FooterTemplate>
After you click the button "close", the text box on the parent web page will be on "readonly" mode
<br />
<asp:Button ID="btnCloseDialog" runat="server" Text="close" />
</FooterTemplate>
</eo:Dialog>
</ContentTemplate>
</ajax:UpdatePanel>
</form>
</body>
</html>
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Hi,
Thanks for the information. We will take a look and see what we can find.
Thanks
|
|
Rank: Member Groups: Member
Joined: 5/28/2008 Posts: 11
|
Hi, Is there any news regarding this problem?
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Hi,
Not yet. We are still working on this issue. We are able to reproduce the problem with the code you provided, but haven't been able to have an reliable workaround yet. We will post again as soon as we have a solution. Thanks for your patience!
Thanks
|
|
Rank: Member Groups: Member
Joined: 5/28/2008 Posts: 11
|
Thanks for your quick reply.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Hi, The issue appears to be an IE issue. However we have discovered a workaround for this issue. Try add the following JavaScript code to the end of the page:
Code: JavaScript
function FocusTextBox()
{
document.getElementById("txtBoxToBeDisabled").focus();
}
var manager = Sys.WebForms.PageRequestManager.getInstance();
var del = Function.createDelegate(window, FocusTextBox);
manager.add_endRequest(del);
This should re-enable the textbox again. Thanks
|
|
Rank: Member Groups: Member
Joined: 5/28/2008 Posts: 11
|
Hi, well, setting focus on each of the text boxes did solve the problem, but not by your work around. i called the FocusTextBox() method on : <body onLoad="FocursTextBox()"> and this way it worked. your way it called this method on the closing of the dialog, but next time I've opened the dialog it was still disable-style. Thanks for your reply, it did give me a good direction and solution.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,221
|
Thanks for the update! Indeed the key is to call focus at the right time.
|
|