4 votes

Utiliser la propriété de sélection au lieu de 'SelectMethod' sur ObjectDataSource ?

J'utilise plusieurs ObjectDataSources pour remplir les champs d'une ComboBox dans un FormView. La FormView est en quelque sorte générique, car son apparence est différente en fonction de sa catégorie.

La catégorie est définie dans l'url de la page web. J'aimerais créer une classe qui filtre la catégorie et expose plusieurs propriétés, qui peuvent être utilisées pour remplir les champs de la ComboBox.

Le problème est que l'ObjectDataSource par défaut n'a qu'une propriété "SelectMethod" pour récupérer les données. Avec cette classe que j'aimerais créer, ce ne serait pas des méthodes, mais des propriétés qui contiendraient les données.

Est-il encore possible, d'une manière ou d'une autre, d'assigner une propriété à la "SelectMethod" (ou similaire) ? Est-il préférable d'utiliser une autre approche ?

Gracias.

9voto

Mehdi Golchin Points 5578

Il y a peut-être quelque chose qui m'échappe. Mais si vous voulez assigner une propriété en tant que SelectMethod vous devez le définir comme get_{Property Name} .

0voto

Ewerton Points 1250

Si vous essayez d'attribuer une SelectMethod de manière dynamique, vous pouvez le faire :

// Vous dites que la catégorie vient de l'Url, donc, dans la méthode Page_Load

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            // Get your QueryString variable
            if (Request["YourVariable"] != null)
            {
             string yourVariable = Request["YourVariable"].ToString();

              if (yourVariable == "CategoryX") {

                   ObjectDataSource1.SelectMethod = "SelectMethodFromCategoryX";

                   // and if you need to set SelectParameters to your ObjectDataSource
                   ObjectDataSource1.SelectParameters["pYourParameterNameForCategoryX"].DefaultValue = this.txtTest.Text;
              }

            }
        }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X