7
votes

Sur la touche, cliquez sur Dropdownlist pour vous rafraîchir

J'ai deux déposées publiques, une pour l'état et l'autre pour la ville. Aussi pour ajouter une ville supplémentaire il y a une autre forme qui s'ouvre dans le nouvel onglet.

Ce que je veux, c'est que, quand j'ajoute la ville supplémentaire pour l'état respectif du nouvel onglet. Je veux rafraîchir la Drop Dropdownlist Pour que, je puisse chercher la ville supplémentaire ajoutée lorsque je sélectionne l'état respectif de la liste déroulante.

Veuillez voir le code HTML: - xxx

Quelqu'un a suggéré d'utiliser updatepanel mais je n'ai pas pu l'utiliser. S'il vous plaît aider

html pour la liste déroulante de la ville: xxx

Voir aussi le code derrière pour la liste déroulante: - xxx

code addcity derrière: - xxx


15 commentaires

Et que sommes-nous censés faire sans voir le code réel? En outre, il serait utile de savoir ce que vous avez essayé et quel était le mauvais résultat ...


@BartDUDE: Voir la question mise à jour, mais chaque fois que j'utilise pour cliquer sur le bouton Actualiser, il utilisait pour générer une nouvelle dropdwonlist .! !!


Si vous ne comprenez pas, nous pourriez avoir besoin de CodeBeHind (C #, VB.NET, ...) Pour au moins avoir une idée de ce que vous faites mal, je pense que ce sera très difficile pour personne de vous aider . Mais je vois que vous avez déjà 3 upvotes afin que je puisse me mal comprendre le tout ...


@BartDUDE: Je suis désolé de ne pas fournir de détails correctement. Voir la question mise à jour.


Du point de vue de la convivialité, pourquoi ne vous concentrez-vous pas sur la chute de la ville pour renseigner automatiquement avec la nouvelle ville automatiquement sélectionnée au lieu de forcer l'utilisateur à sélectionner l'Etat à nouveau?


@Peroija: Comment pouvons-nous y parvenir, ce qui serait aussi génial.


@BartDUDE: Toute aide ou orientation liée à cela?


@RAHAHULSUTAR Vous avez dit que vous voulez rafraîchir la liste déroulante de l'état? Ne devriez-vous pas mettre à jour la liste déroulante de la ville?


@ Mairajahmad: Oui, comment faire ça. J'ai essayé mais ne pouvait pas y arriver


Pourquoi avez-vous ouvert un nouvel onglet pour cela? Je pense qu'il est préférable d'utiliser des boîtes de dialogue de requête. Et en utilisant cela, vous pouvez obtenir les détails de la nouvelle ville de l'utilisateur et, en même temps, vous pouvez ajouter ces nouvelles valeurs à votre ancien champ de formulaire.


@Arunprasanth: Pouvez-vous m'aider avec ça?


Il suffit de passer à travers ce lien dev.jtsage.com/jqm-simpledialog/demos/string .html , je pense que cela vous aidera


Pouvez-vous montrer addcity.aspx marquage et code, s'il vous plaît?


@insomnium_: Voir le code mis à jour ..


Vous ne devriez certainement pas ouvrir un nouvel onglet, la popup sera beaucoup plus utilisable et une bonne pratique. S'il vous plaît, voir JQRYUII.COM/dialog/#modal-form Cela démontre à peu près la même chose Fonctionnalité dont vous avez besoin, à l'exception de la grilleView est actualisée au lieu de publication.


3 Réponses :


4
votes

Je vous suggère d'utiliser updatepanel. Comme le déclencheur met l'événement qui ajout d'une nouvelle ville (peut-être un bouton cliquez) xxx

quelque part dans la page xxx

dans CodeBeHind of Cliquez sur le bouton Ajoutez un élément à la ddtest Dropdowdlist de cette manière xxx

de cette manière lorsque vous cliquez sur le bouton Ajouter un nouvel élément à la liste déroulante sera ajouté et l'interface utilisateur sera rafraîchie.


25 commentaires

Où devrais-je ajouter le bouton? À l'intérieur ou à l'extérieur du panneau de mise à jour?


Le bouton pourrait être en dehors du panneau, j'ai ajouté une ligne de code pour vous montrer comment ajouter des éléments à la liste déroulante. Je ne peux pas ajouter d'autres parce que je ne connais pas votre projet


Je reçois une erreur au Nouveau car il n'existe pas dans le contexte actuel


Ça ne fonctionne pas, chaque fois que je clique sur le bouton, il génère à nouveau la nouvelle dépose dropdown idem comme état


Laissez-nous Continuez cette discussion en chat .


Il génère toujours une liste déroulante


Que voulez-vous dire avec 'génère une liste déroulante? Quel est le mauvais comportement?


Je veux dire, chaque fois que je clique sur le bouton, il devrait actualiser la liste déroulante. Maintenant, le comportement après avoir cliqué est qu'il génère une nouvelle liste déroulante avec les mêmes données que ddlstate


Je dois mieux vous expliquer, je pense que vous n'avez pas eu ce qui se passe et ce que je veux. Venez discuter, je vous expliquerai tout le tout.


Je ne peux pas discuter maintenant, essayez d'expliquer ce qui se passe dans la question, puis plus tard je modifierai ma réponse s'il y a quelque chose qui ne convient pas à vos besoins.


Voir, tout d'abord. J'ai une liste déroulante d'Etat et deuxième pour la ville. Si je sélectionne l'état et la ville respective se trouve dans la deuxième liste déroulante. S'il n'y a pas la ville que l'utilisateur souhaite choisir avec la ville existante, il cliquera sur le lien à côté de la liste déroulante où il sera redirigé pour remplir une ville supplémentaire. Lorsqu'il finit l'ajout de la ville supplémentaire. Je reviendrai sur la même page, et il clique sur le bouton pour rafraîchir la liste déroulante de l'état afin qu'il puisse voir la ville supplémentaire ajoutée à la ville respective. Faites-moi savoir si vous avez besoin de quelque chose d'autre


Faby, tout ce que tu as?


@Rahulsutar oui je peux.


@Mairajahmad: laissez-moi savoir quoi d'autre vous avez besoin de mon côté .. j'ai posté la question


Actuellement, vous ajoutez de la ville de la page séparée .Can vous ajoutez la ville de la même page?


@Mairajahmad: La page est très longue et la page est distraite, si l'ajout dans la même page sera facile que ce serait génial


C'est à vous de décider si vous pouvez ajouter le code d'ajout de la ville dans la même page ou pas?


@ Mairajahmad: Oui, pour le moment, laissez la ville logique à ajouter de l'autre page, mon problème principal est de résoudre la liste déroulante. S'il vous plaît aider à cela.!


Laissez-nous Continuez cette discussion en chat .


@Mairajahmad: laissez-moi savoir une fois que vous libérez


@RAHAHULSUTAR DÉSOLÉ RAHUL I M Très occupé ces jours-ci.Veu-vous être libre jeudi.


@ Mairajahmad: Bien sûr, j'attendrai jeudi. Comme j'ai aussi une autre tâche. Faites-moi savoir une fois que vous êtes libre. Merci :)


@Mairajahmad: Es-tu libre maintenant? Donc, nous pouvons la finir.


Pas encore mec très occupé.


@Mairajahmad: Es-tu libre maintenant? J'attends toujours pour toi.!



5
votes

Mise à jour de la liste déroulante Ville sans aucun événement tiré du client peut être effectué en implémentant de longs interrogations ou en utilisant des œuvres de cadre tels que SignalR. Une question très similaire a été posée et a répondu ici .

Voici un exemple de formulaires Web à l'aide de SignalR. Assurez-vous de télécharger et d'installer Microsoft.aspnet.SignalR Strort> de Nuget. p>

startup.cs change strong> p> xxx pré>

Voici un hub simple qui s'occuperait de mettre à jour tous les clients souscrits avec tout nouveau villes ajoutées. P>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="../../Scripts/jquery-1.10.2.min.js"></script>
    <script src="../../Scripts/jquery.signalR-2.2.0.min.js"></script>
    <script src="../../Scripts/app.js"></script>
    <script>
        $(function () {
            var cityHub = $.connection.cityHub;
            $.connection.hub.url = "/city";
            $.connection.hub.logging = true;

            cityHub.client.newCityNotification = newCityNotification;

            $.connection.hub.start().done(function () {
                
            });

            function newCityNotification(city) {
                $("#cityddl").append($(getCityOptionItem(city)));
            }


            function getCityOptionItem(city) {
                return "<option>" + city + "</option>";
            }

        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <select id="cityddl">
            <option id="0">Existing City</option>
        </select>
    </div>
    </form>
</body>
</html>


5 commentaires

Je ne veux pas en MVC, je veux en simply .net


Cet exemple spécifique était en MVC (lequel BTW est simple .NET) Vous pouvez effectuer la même tâche sur les formulaires Web. Je vais poster un exemple pour vous sous peu.


Bien sûr, attendra et mettra en œuvre .. !!


Ce n'est pas ce que je veux. Vous rendez mon code plus compliqué. Quoi qu'il en soit, merci pour vos efforts. Je vais retirer le bowvote


Ce type de solution est la seule option que vous avez à moins que l'une des deux modifications soit effectuée. Il vous suffit de déplacer l'ajout de la nouvelle ville à la même page que l'état de l'état et de la ville. Vous devez forcer l'utilisateur à rafraîchir manuellement la liste déroulante en cliquant sur un bouton ou en cas de même événement. Les deux pourraient être effectués à l'aide d'un panneau de mise à jour comme suggéré. Votre question initiale a explicitement indiqué l'ajout de la nouvelle ville en cours dans une nouvelle page.



2
votes

Vous pouvez ouvrir la page "Ajouter la ville" dans la fenêtre contextuelle (si cela ne vous dérange pas). Et lors de la sauvegarde, faites quelque chose comme ça xxx pré>

et ajoutez du javascript comme p>

function RefreshDropDown(val,txt)
    {
        var opt = document.createElement("option");            
        var sCtrl = document.getElementById('<%= ddlCity.ClientID %>').options.add(opt);
        opt.text = txt;
        opt.value = val;
}


5 commentaires

Je pense que cela devrait être accepté comme réponse, car le sujet démarré n'a pas besoin d'installer des extensions supplémentaires telles que SignalR. Cela empêche la tâche simple et pure. L'utilisateur ne doit pas passer à un autre onglet pour ajouter de la nouvelle ville - c'est une mauvaise utilisation de la convivialité et le sujet démarré rend sa vie et son développement plus difficile en la mettant en œuvre de cette manière.


Cela me semble être la solution / solution correcte; Cependant, cette réponse et la question liée à la question doivent être mieux expliquées. La recommandation ici semble être de charger une page ASPX dans un iframe dans une popup, est-ce correct?


Recommandez-vous également de joindre / ajouter un écouteur d'événement à un bouton de la page encadrée figurant dans le domaine de la page parent pendant l'événement ONLOAD ou indiquez-vous que la page ASPX doit faire la réponse.write (appelant ces méthodes parentes implicitement ) pendant sa publication.


De plus, je préfère être un peu plus explicite lors de l'introduction d'objets peu communs tels que window.opener . développeur.mozilla.org/en-us/docs/web/ API / WINDOW.OPENER Il n'y a aucune raison de le faire courte main. Je ferais quelque chose comme ça (plus ou moins) -