éviter le postback avec un modalpopupextender
Bonjour,
Je rencontre un probleme avec un modalpopup extender : je veux provoquer la mise à jour de données de la page qui declenche la modalpopup extender sans recharger la page
code de la page
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
<asp:Content ContentPlaceHolderID="ContenuPrincipal" runat="server" ID="ContenuPageTest">
<script type="text/javascript">
function onOk() {
document.getElementById("btnOk").click();
}
</script>
<asp:ScriptManager ID="smMaPage" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="upMaPage" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div>
<link rel="stylesheet" type="text/css" href="CssTest.css">
<asp:Button ID="btnSort" runat="server" Text="trier par prix"
onclick="btnSort_Click" />
<asp:Button ID="btnFilter" runat="server"
Text="filtrer" />
<table ID="monTableau" runat="server" >
</table>
<asp:Panel ID="Panel1" runat="server" style="display:none">
<table>
<tr>
<td>
<asp:RadioButton ID="rbSup" runat="server" GroupName="groupe1"
Text="Afficher les produits dont le prix >300 euros" />
</td>
</tr>
<tr>
<td>
<asp:RadioButton ID="rbInf" runat="server" GroupName="groupe1"
Text="Afficher les produits dont le prix > 200 euros" />
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnOk" runat="server" onClick="btnOk_Click" Text="OK"
/>
</td>
<td>
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
</td>
</tr>
</table>
</asp:Panel>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="btnFilter"
PopupControlID="Panel1" BackgroundCssClass="modalBackground"
OkControlID="btnOk" OnOkScript="onOk()"
CancelControlID="btnCancel"
>
</cc1:ModalPopupExtender>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content> |
voila le code behind
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using TestdotNetDll;
using System.Data.SqlClient;
using System.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
List<Produit> listeProduit = new List<Produit>();
Categorie c = new Categorie();
protected void Page_Load(object sender, EventArgs e)
{
listeProduit = c.GetProducts();
BuildTable();
}
protected void btnSort_Click(object sender, EventArgs e)
{
listeProduit.Sort(new ProductPriceComparer());
BuildTable();
}
protected void btnOk_Click(object sender, EventArgs e)
{
if (rbSup.Checked)
listeProduit = c.GetProducts(300);
if(rbInf.Checked)
listeProduit = c.GetProducts(200);
listeProduit.Sort(new ProductPriceComparer());
BuildTable();
}
protected void BuildTable()
{
monTableau.Rows.Clear();
HtmlTableRow ligneTitre = new HtmlTableRow();
HtmlTableCell caseTitre1 = new HtmlTableCell();
HtmlTableCell caseTitre2 = new HtmlTableCell();
caseTitre1.InnerHtml = "Nom";
caseTitre2.InnerHtml = "Prix";
ligneTitre.Cells.Add(caseTitre1);
ligneTitre.Cells.Add(caseTitre2);
monTableau.Rows.Add(ligneTitre);
foreach (Produit p in listeProduit)
{
HtmlTableRow Maligne = new HtmlTableRow();
HtmlTableCell maCase = new HtmlTableCell();
HtmlTableCell maCase2 = new HtmlTableCell();
maCase.Width = "50%";
maCase.InnerHtml = p.Nom;
maCase2.Width = "50%";
maCase2.InnerHtml = p.Prix.ToString();
Maligne.Cells.Add(maCase);
Maligne.Cells.Add(maCase2);
monTableau.Rows.Add(Maligne);
}
upMaPage.Update();
}
} |
la mise à jour se fait bien mais avec un chargement de la page et c'est ce que je veux éviter .
Merci d'avance