2010-12-09 16 views
0

Je suis un peu nouveau dans la programmation Web,
Je suis en train de concevoir une page de recherche. Je veux créer quelques boutons radio où chaque clic sur un bouton radio montrera un div contient les divs de recherche connexes. et à partir de là pour faire la requête à la base de données (non liée à la poste)Création de plusieurs divisions masquées dans ASP.Net | Ajax | JQuery

comment puis-je faire cela? essayé de le chercher, et n'a pas obtenu de bonne réponse. Je veux que le changement de la page sera du côté serveur et non du côté client. p.s. J'ai travaillé avec le kit de contrôle ajax jusqu'à présent ..

merci pour l'aide.

Répondre

0

Vous avez juste besoin d'un UpdatePanel, de boutons radio et d'un contrôle MultiView.

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<div> 
<asp:RadioButton ... 
<asp:RadioButton ... 
</div> 
<asp:MultiView ID="mvAll" runat="server" ActiveViewIndex="-1"> 
<asp:View ID="vwFirst" runat="server"> 
</asp:View> 
<asp:View ID="vwSecond" runat="server"> 
</asp:View> 
... 
</asp:MultiView> 
</ContentTemplate> 
</asp:UpdatePanel> 

Lorsque le bouton radio sélectionné vous a changé juste la vue de définir lié à être actif,

mvAll.SetActiveView(ViewIDYouNeed); 
+0

j'ai essayé de faire comme vous l'avez dit, mais il ne fonctionne pas i inséré le « mvall.setactive .. » dans RadioButton1_CheckedChanged vide protégé (expéditeur d'objet, EventArgs e) – RonenIL

+0

Est-ce que vous définissez la propriété AutoPostBack de la radio les boutons à true? –

+0

oui je l'ai fait maintenant et ça marche. – RonenIL

0

Vous pouvez y arriver avec des panneaux et un panneau de mise à jour.

<asp:RadioButton ID="rdo1" AutoPostBack="true" GroupName="radios" runat="server" OnCheckedChanged="ShowDivs" /> 
<asp:RadioButton ID="rdo2" AutoPostBack="true" GroupName="radio2" runat="server" OnCheckedChanged="ShowDivs" /> 

<asp:UpdatePanel runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
    <asp:Panel ID="pnl1" runat="server" Visible="false"></asp:Panel> 
    <asp:Panel ID="pnl2" runat="server" Visible="false"></asp:Panel> 
</ContentTemplate> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="rdo1" /> 
    <asp:AsyncPostBackTrigger ControlID="rdo2" /> 
</Triggers> 
</asp:UpdatePanel> 

Vous devez ensuite gérer la définition de la propriété Visible des panneaux de votre méthode ShowDivs dans votre code.

Ou, vous pouvez utiliser jquery/javascript pour accomplir ceci.

<input type="radio" onClick="ShowDiv(1)" /> 

function ShowDiv(id) { 
HideDivs(); 
$(id).show('slow'); 
} 
+0

que devrais-je écrire dans ShowDivs: if (?????) pnl1.visble = true; – RonenIL

+0

Eh bien, vous vérifieriez quel radiobutton a été "vérifié" et basé sur ce qui définit la propriété visible sur True pour le panneau que vous voulez montrer. –