Telerik RadWindow Javascript valeurs de retour ASP.NET
J'ai une page parent qui lance un telerik radwindow et passe un argument.
Une fois le radwindow est fait processeing la valeur, j'en ai besoin pour retourner à la page parent, et je voudrais que la page parent d'avoir accès à cette valeur dans mon code behind de la page.
J'ai essayé de passer la valeur à un champ caché sur ma page et ensuite déclencher un rafraichissement de la page et mon code derrière montres pour voir si la valeur est le travail.
Je n'arrive pas à obtenir que cela fonctionne. J'obtiens la valeur de retour dans le parent de javascript, mais je ne peux pas le faire à partir de mon champ caché dans le code derrière.
J'ai même l'avoir dans la zone de texte comme je le dois, mais, quand je trouve le champ Caché dans le code-behind, aucune valeur n'est définie.
Où j'ai mis des alertes, j'obtiens les valeurs affichées comme j'en ai besoin.
Je soupçonne que la raison pour laquelle je ne peux pas voir ma valeur de retour dans le fichier code-behind, c'est que lorsque la page est actualisée, je reçois une nouvelle page et non seulement de causer un message de retour.
Et n'est-il pas une meilleure façon que je peux le faire.
voici mon code de la page parente:
Parent 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>
Parent Code Derrière:
protected void Page_Load(object sender, EventArgs e)
{
HtmlInputHidden hidden = (HtmlInputHidden)Page.FindControl("Hidden1");
if (IsPostBack && !string.IsNullOrEmpty(hidden.Value))
{
//Code Here
}
}
Voici mon boîte de Dialogue code:
Dialogue 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>
Merci pour toute l'aide
Ian
OriginalL'auteur SetiSeeker | 2010-01-10
Vous devez vous connecter pour publier un commentaire.
Vous effectuez les opérations suivantes
Mais que l'habitude de provoquer une publication, il sera tout simplement recharger la page parent, vous avez besoin de causer un potback.
Vous pourriez essayer d'ajouter un bouton dans le formulaire parent avec le style 'display:none', et la gestion de l'événement de clic dans le code-behind, vous pouvez utiliser ce bouton off à partir de votre code js.
Dans La Page Parent :
Vous pouvez appeler à partir de votre javascript comme ceci (sans jQuery), de le placer dans votre rappel
OriginalL'auteur Richard Friend
Une meilleure approche serait présent sur le aspx côté:
<%=this.ClientScript.GetPostBackEventReference(new System.Web.UI.PostBackOptions(btnClick))%>
OriginalL'auteur Jeff