Ce que je voudrais faire, c'est que l'utilisateur ajoute un nouvel enregistrement à la base de données et ouvre une boîte de dialogue JQuery confirmant que le nouvel enregistrement a été sauvegardé. Je pensais que ce serait un exercice simple. J'ai un gridview lié à un LINQDataSource pour permettre à l'utilisateur de voir et éditer des enregistrements existants et une zone de texte et un bouton pour ajouter de nouveaux codes.Afficher la boîte de dialogue jquery en postback dans ASP.NET après avoir enregistré un nouvel enregistrement
Dans la tête du document, je donne les résultats suivants:
$('#dialog').dialog({
autoOpen: false,
width: 400,
buttons: {
"Ok": function() {
$(this).dialog("close");
}
}
});
et futher dans le balisage je:
<div id="dialog" title="New Code Added">
<p>"<asp:Literal runat="server" ID="LiteralNewCode"></asp:Literal>" was successfully added.</p>
</div>
Ainsi, lorsque l'utilisateur entre dans une nouvelle description et il passe toute la validation, il est ajouté à la base de données et le gridview est rebondi pour afficher le nouvel enregistrement.
protected void ButtonSave_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
CCRCode.Add(<long list of paramters>);
GridCode.DataBind();
IsNewCode = true;
NewDescription = <new description saved to database>;
}
}
Maintenant, voici où (je pensais) je définir une propriété booléenne pour indiquer qu'une nouvelle description a été ajoutée, ainsi que le texte de la nouvelle description. Voir ci-dessous:
protected bool IsNewCode
{
get { return ViewState["IsNewCode"] != null ? (bool)ViewState["IsNewCode"] : false; }
set { ViewState["IsNewCode"] = value; }
}
private string NewDescription
{
get { return ViewState["NewDescription"] != null ? ViewState["NewDescription"].ToString() : string.Empty; }
set { ViewState["NewDescription"] = value; }
}
Voici où je perds mon chemin. Je suppose que je veux ajouter des fonctionnalités à inclure un code similaire à:
$('#dialog').dialog('open');
J'ai ajouté une méthode de registerscriptblock en cas page_load mais cela ne fonctionne pas. Des idées? Ou est-ce que je vais tout à fait faux?
Merci.