2012-05-19 4 views
1

По какой-то причине значение, возвращаемое диалоговым окном Modal, всегда «не определено».Возвращаемое значение ModalDialog всегда не определено

Моя Главная страница (ASPX):

<%@ Page Title="Home Page" Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 

<html> 
<head></head> 
<body> 

<script type="text/javascript"> 

function openWindows() { 
    var getval; 
    getval = window.showModalDialog('../WebSite/popups/uploader.htm'); 
    document.getElementById("Input").value = getval; 
    } 
</script> 

<input id="Input" runat="server" /> 
<input type="button" id="Button1" runat="server" onclick="openWindows()" value="Choose Image"/> 
</form> 
</body> 
</html> 

Таким образом, в этом случае значение GETVAL всегда "не определено"

My Dialog Box (HTML) Код:

<html> 
<head> 
    <script type="text/javascript"> 
     function ReturnValues() { 
      var objfile = document.getElementById("fileup").value 
      document.getElementById("TxtInput").value = objfile 
      var vReturnValue = document.getElementById("TxtInput").value; 
      window.ReturnValue = vReturnValue; 
      window.close(); 
     } 

    </script> 
</head> 
<body> 
    <form id="Formuploader" method="post" runat="server"> 
     <input id="TxtInput" type="hidden" runat="server" /><br /> 
     <button id="btnSaveImage" runat="server" onclick="ReturnValues()">Save Image</button> 
    </form> 
    </body> 
    </html> 

Здесь ReturnValue имеет требуемое значение. Но как только ModalDialog закрывается, переменная getval в главном окне становится неопределенной.

Любая помощь очень ценится. Спасибо!

ответ

0

при возврате значения, сделать это таким образом:

window.returnValue = vReturnValue; 

использовать нижний регистр returnValue, не ReturnValue.

также, ваш модальный диалог не закрывается. чтобы исправить это, измените свою кнопку на ссылку.

<a href="#" id="btnSaveImage" runat="server" target="_self" onclick="ReturnValue()"> 
     Save Image</a> 
+0

Я не понимаю. Как objfile undefined? Кроме того, значение заполняется до окна .ReturnValue = vReturnValue; –

+0

Я обновил свой пост. также, взгляните на следующую статью о том, как вернуть сложные данные. http://p2p.wrox.com/javascript/26755-return-value-showmodaldialog.html –

+0

У меня есть еще один вопрос: [ссылка] http://stackoverflow.com/questions/10662592/calling-code-behind- from-javascript –

0

Попробуйте это:

window.opener.document.getElementById("Input").value = getval; 
+0

Nopes .. Не работает :( –

+0

проблема заключается в 'window.ReturnValue', вместо этого он должен быть' window.returnValue'. –

Смежные вопросы