Question

Je crée un module 4.x DotNetNuke, et ont besoin d'un AJAX CascadingDropDown dans mon module. Je l'ai défini comme suit ...

<asp:UpdatePanel runat="server" ID="CascadingDropDowns">
    <ContentTemplate>
        <asp:DropDownList runat="server" ID="SelectGroupDropDownList">
        </asp:DropDownList>
        <ajax:CascadingDropDown runat="server" ID="SelectGroupDropDownListExtender" Category="Group" 
            TargetControlID="SelectGroupDropDownList" PromptText="Select a Group" ServiceMethod="GetGroups">
        </ajax:CascadingDropDown>
        <!-- more dropdowns & cascadingdropdown extenders here -->

Avec la méthode de page définie dans le code-behind de l'ascx comme ça ...

[WebService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService()]
public partial class EligibilityView : PortalModuleBase
{
    [WebMethod]
    [ScriptMethod]
    public CascadingDropDownNameValue[] GetGroups(string knownCategoryValues, string category)
    {
        var results = new List<CascadingDropDownNameValue>();

        // code here to fill the list with values...

        return results.ToArray();

    }

Quand je lance la page, je reçois un « [erreur de méthode 500] » - et ne peut pas comprendre ce que le diable que je fais mal. Je pense que le problème est que la page ne peut pas trouver le webmethod parce que son définie à l'intérieur du contrôle ASCX et non la page elle-même. Je dois le garder défini de cette façon - et ne pas créer un service ASMX -. Car cela va être compilé dans un module pour DotNetNuke et je veux garder les choses simples à l'intérieur du module

Toutes les suggestions seraient grandement appréciés.

Était-ce utile?

La solution

Je ne pense pas qu'il va être un moyen facile d'avoir accès à cette méthode de service Web alors qu'il est dans le ASCX. "Simple", dans ce cas, signifie probablement ajouter un ASMX au module.

Y at-il une raison pour laquelle vous pensez que l'ajout d'un ASMX sera un problème?

Ajout d'un autre fichier à l'ensemble du module devrait impliquer le même processus que vous utilisez pour ajouter le contrôle lui-même. Dans le manifeste, vous aurez juste besoin de le préciser dans la section des fichiers, puis assurez-vous qu'il se retrouve dans le paquet. Vous pouvez également utiliser un fichier zip de ressources dans le paquet et il suffit de spécifier que zip, en vous assurant que votre .ascx et les fichiers .asmx (et tous les autres fichiers de contenu) sont là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top