2009-07-27 5 views
2

le scénario selon lequel:ASP.NET: cookies webforms définie à l'aide jQuery sur l'événement OnSelectedIndexChanged

  • une page Web Form ASP.NET a un DropDownList et un ListView.
  • ce DropDownList doit définir une valeur de cookie sur son événement OnSelectedIndexChanged.
  • Le DropDownList est également défini sur AutoPostBack="True" pour forcer le chargement de ListView à l'aide de la nouvelle valeur de DropDownList.
  • la page fait référence à des bibliothèques JQuery actuelles, y compris le great set of cookie plugins

Ce code sera utilisé dans l'attribution de la valeur du cookie:

var date = new Date(); 
date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000)); 
$.cookie('cookieName', 'theValue', { path: '/', expires: date }); 

Question: Pouvez-vous suggérer comment faire en sorte que la valeur de DropDownList soit extraite et enregistrée dans un cookie à l'aide de jQuery? Points de bonus super pour une réponse, y compris comment appeler la méthode de post-retour pour relier le ListView! J'aimerais vraiment enregistrer un «flash» post-retour pour l'utilisateur.

Répondre

2

1) Pour obtenir la valeur de DropDownList:

var ddlVal = $('#<%= ddList.ClientID %>').val(); 

2) ListView Chargement:

a. Pour cela, je vais suggérer de consulter les publications de Dave sur son site Encosia.

b. Rick Strahl a également un grand poste sur est blog concernant l'utilisation de jQuery ajax

c. Muhammad Mosa a décrit post scénario Maître-Détail avec ajax

+0

Merci Village. Pour les autres, pouvez-vous peut-être ajuster le code pour supprimer l'espace entre la livre et le pourcentage? –

1

Quelque chose comme ce qui suit sauvera la valeur à un cookie sur l'événement change:

$("#" + <%=YourDropDownList.ClientID %>).change(function(){ 
    var date = new Date(); 
    date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000)); 
    $.cookie('cookieName', $(this).val(), { path: '/', expires: date }); 
}); 
1
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <title></title> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script src="Scripts/jquery.cookie.js" type="text/javascript"></script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:DropDownList ID="TestDropDownList" runat="server"> 
      <asp:ListItem Text="Please Select" Value="0"></asp:ListItem> 
      <asp:ListItem Text="FirstText" Value="1"></asp:ListItem> 
      <asp:ListItem Text="SecondText" Value="2"></asp:ListItem> 
      <asp:ListItem Text="ThirdText" Value="3"></asp:ListItem> 
      <asp:ListItem Text="FourthText" Value="4"></asp:ListItem> 
     </asp:DropDownList> 
    </div> 
    </form> 
</body> 

<script type="text/javascript"> 
    $(function() 
    { 
     $('#<%= TestDropDownList.ClientID %>').change(function(e) 
     { 
      var selectedValue = this.value; 
      var date = new Date(); 
      date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000)); 
      $.cookie('cookieName', 'theValue', { path: '/', expires: date }); 

     }); 
    });  
</script> 
</html> 
+0

Merci Raghav! Rien n'a été fait avec 'selectedValue' dans la fonction' change', bien que :) –

Questions connexes