У меня есть родительская страница, которая запускает telerik radwindow и передает ему аргумент.
Как только RadWindow завершит обработку значения, мне нужно, чтобы оно вернуло его на родительскую страницу, и я бы хотел, чтобы родительская страница имела доступ к этому значению в моем коде за страницей.
Я попытался передать значение в скрытое поле на моей странице, а затем вызвать обновление страницы и мой код отслеживает, чтобы увидеть, работает ли значение.
Я не могу заставить это работать. Я получаю возвращаемое значение в родительском javascript, но не могу получить его из скрытого поля из кода.
Я даже помещаю его в текстовое поле, как мне нужно, но, когда я нахожу скрытое поле в кодовой области, значение не устанавливается.
Когда я установил оповещения, я получаю значения, отображаемые по мере необходимости.
Я подозреваю, что причина, по которой я не вижу своего возвращаемого значения в коде файла, заключается в том, что при обновлении страницы я получаю новую страницу, а не только возвращаю сообщение.
И нет ли лучшего способа, которым я могу это сделать.
вот мой код на родительской странице:
Родительский ASPX:
<script type="text/javascript">
function OpenWnd() {
var oWnd = radopen(null, "RadWindow1");
}
function OnClientShow(oWnd) {
//Create a new Object to be used as an argument to the radWindow
var arg = new Object();
//Using an Object as a argument is convenient as it allows setting many properties.
arg.text = document.getElementById("TextBox1").value;
//Set the argument object to the radWindow
oWnd.Argument = arg;
}
function ClientCallBackFunction(radWindow, returnValue) {
//check if a value is returned from the dialog
if (returnValue.newtext) {
document.getElementById("Hidden1").value = returnValue.newtext;
alert("HiddenValue: " + document.getElementById("Hidden1").value);
}
}
</script>
<form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<div>
<telerik:RadWindowManager ID="RadWindowManager2" runat="server">
<Windows>
<telerik:RadWindow ID="RadWindow1" runat="server" OnClientShow="OnClientShow" ClientCallBackFunction="ClientCallBackFunction"
NavigateUrl="Dialog2.aspx" />
</Windows>
</telerik:RadWindowManager>
</div>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox>
<input type="button" value="Send content to dialog page" onclick="OpenWnd()" />
<p>
<input id="Hidden1" type="hidden" runat="server" />
</p>
</form>
Родительский код:
protected void Page_Load(object sender, EventArgs e)
{
HtmlInputHidden hidden = (HtmlInputHidden)Page.FindControl("Hidden1");
if (IsPostBack && !string.IsNullOrEmpty(hidden.Value))
{
//Code Here
}
}
Вот мой код диалога:
Диалог ASPX:
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function ConfigureDialog() {
//Get a reference to the radWindow wrapper
var oWindow = GetRadWindow();
//Obtain the argument
var oArg = oWindow.Argument;
//Use the argument
var oArea = document.getElementById("TextBox1");
oArea.value = oArg.text;
}
function SendAndClose() {
var oWindow = GetRadWindow();
//Get current content of text area
var arg = new Object();
arg.newtext = document.getElementById("TextBox1").value;
oWindow.Close(arg);
RefreshParentPage();
}
function RefreshParentPage() {
GetRadWindow().BrowserWindow.location.reload();
alert("RefreshParentPage");
}
</script>
Спасибо за помощь
Ian