comment récupérer une querystring valeur de un .page aspx et le transmettre à ascx page
Est est possible de récupérer la valeur de l'ID de la Demande.Chaîne de requête à partir d'un fichier aspx et la passer sur un fichier ascx afin de réussir la mise à jour d'un profil à l'aide de l'extrait ID?
Souvent, si quelque chose est dans un UserControl, c'est soit parce que la fonctionnalité de la commande est assez importante pour être brisé dans son propre conteneur réutilisable qui peut être réutilisé sur une autre page. Si ce contrôle est en fait jamais être réutilisé sur une autre page, il ne devrait pas être de référencement paramètres de chaîne de requête, car le contrôle ne doit pas faire des hypothèses sur quelle page il se trouve. Si ce contrôle est inclus dans une autre page dont les paramètres de chaîne de requête sont nommés différemment? Ou peut-être sur une autre page que la valeur viendra de la base de données ou ViewState ou sera automatiquement déterminé en quelque sorte? Donc ma règle générale est que si vous allez faire un UserControl, jamais, jamais, jamais faire aucune hypothèse sur la page qu'il est hébergé sur.
Donc, comme la plupart des gens, vous pouvez toujours accéder à la Demande.QueryString propriété de l'intérieur de l'objet UserControl, mais qui ne serait probablement pas la meilleure idée. La création d'un bien sur le contrôle qui est défini par le conteneur de la page est une bien meilleure idée.
La meilleure idée à mon avis, et ce que je suis presque toujours le faire, c'est créer de la méthode appelée LoadData (ou quelque chose de similaire) sur le contrôle, avec des paramètres pour l'ensemble de ces valeurs de chaîne de requête que vous avez besoin. De cette façon, vous avez un point d'entrée unique pour les données, il est donc clair à quel point ces valeurs sont prêts et qu'ils sont prêts à. Si vous allez à la propriété de l'itinéraire, il y a toujours la question de savoir si toutes les propriétés fus, et si ils ont eu ensemble dans le bon endroit dans la page cycle de vie (il peut être délicat lors de publications)
Dans votre aspx page, dans votre ascx de contrôle de l'utilisateur, dans votre page maître, dans votre contrôle personnalisé et presque partout, vous pouvez accéder à la chaîne de requête. Utiliser une de ces méthodes:
Accéder directement à la chaîne de requête de droit à l'intérieur de votre contrôle de l'utilisateur via Page.Request.QueryString
Créer une propriété dans votre contrôle de l'utilisateur, puis dans votre page, lancez votre de contrôle de l'utilisateur pour obtenir une référence à la propriété et de définir cette propriété. Puis dans votre contrôle de l'utilisateur, l'utilisation de cette propriété.
N'importe où à l'intérieur de ASP.NET de l'environnement, d'avoir accès à la demande (y compris la chaîne de requête) par l'intermédiaire de HttpContext.Current.Request
Souvent, si quelque chose est dans un UserControl, c'est soit parce que la fonctionnalité de la commande est assez importante pour être brisé dans son propre conteneur réutilisable qui peut être réutilisé sur une autre page. Si ce contrôle est en fait jamais être réutilisé sur une autre page, il ne devrait pas être de référencement paramètres de chaîne de requête, car le contrôle ne doit pas faire des hypothèses sur quelle page il se trouve. Si ce contrôle est inclus dans une autre page dont les paramètres de chaîne de requête sont nommés différemment? Ou peut-être sur une autre page que la valeur viendra de la base de données ou ViewState ou sera automatiquement déterminé en quelque sorte? Donc ma règle générale est que si vous allez faire un UserControl, jamais, jamais, jamais faire aucune hypothèse sur la page qu'il est hébergé sur.
Donc, comme la plupart des gens, vous pouvez toujours accéder à la Demande.QueryString propriété de l'intérieur de l'objet UserControl, mais qui ne serait probablement pas la meilleure idée. La création d'un bien sur le contrôle qui est défini par le conteneur de la page est une bien meilleure idée.
La meilleure idée à mon avis, et ce que je suis presque toujours le faire, c'est créer de la méthode appelée LoadData (ou quelque chose de similaire) sur le contrôle, avec des paramètres pour l'ensemble de ces valeurs de chaîne de requête que vous avez besoin. De cette façon, vous avez un point d'entrée unique pour les données, il est donc clair à quel point ces valeurs sont prêts et qu'ils sont prêts à. Si vous allez à la propriété de l'itinéraire, il y a toujours la question de savoir si toutes les propriétés fus, et si ils ont eu ensemble dans le bon endroit dans la page cycle de vie (il peut être délicat lors de publications)
OriginalL'auteur Mike Mooney
Dans votre
aspx
page, dans votreascx
de contrôle de l'utilisateur, dans votre page maître, dans votre contrôle personnalisé et presque partout, vous pouvez accéder à la chaîne de requête. Utiliser une de ces méthodes:Page.Request.QueryString
HttpContext.Current.Request
OriginalL'auteur Saeed Neamati
Vous pouvez accéder à la Demande.Collection QueryString à partir du code-behind de votre UserControl.
OriginalL'auteur Yiğit Yener
Vous pouvez passer le querystring valeur en tant que Propriété de la ascx contrôle, comme:
Puis dans votre code derrière pour le contrôle personnalisé, ajoutez la ligne suivante dans votre classe:
OriginalL'auteur Curt