Comment utiliser de l'Utilisateur.L'identité.Nom en tant que paramètre pour SqlDataSource dans ASP.NET?
Pour SqlDataSource je peux configurer la source externe pour la prochaine paramater.
Par exemple, il pourrait être une chaîne de Requête, Session, le Profil et ainsi de suite.
Cependant je n'ai pas une option pour utiliser l'Utilisateur en tant que source.
Je sais que je pourrais apporter de la valeur pour le paramètre dans l'Insertion,de la Sélection,de la mise à Jour,la Suppression des événements. Mais je ne pense pas que c'est une ellegant solution car j'ai quelques paramètres déjà défini dans le fichier aspx. Je ne veux pas avoir les paramètres définis dans deux endroits distincts. Cela fait désordre.
Je peux donc en quelque sorte de définir ce paramètre .fichier aspx?
<SelectParameters>
<asp:QueryStringParameter DefaultValue="-1" Name="ID"
QueryStringField="ID" />
//User.Identity.Name goes here as a value for another parameter
</SelectParameters>
OriginalL'auteur Wodzu | 2010-10-05
Vous devez vous connecter pour publier un commentaire.
De le déclarer dans votre
.aspx
et de le remplir dans votre code:aspx
codebehind
.DefaultValue
au lieu de.Value
dans le code c#Merci Jan, mais c'est ce que je voudrais éviter. Dans yuour exemple, j'ai besoin de remplir valeur de paramètre dans le code-behind. Donc, je dois gérer les paramètres en deux endroits distincts: dans le fichier aspx et dans le fichier cs. Je ne peux pas déclarer le paramètre à aspx et lier de la valeur pour elle aspx?
Vous pouvez donner un coup de feu en utilisant
<asp:Parameter Name="username" Type="String" DefaultValue="<%#User.Identity.Name%>" />
<%#de l'Utilisateur.L'identité.Nom de l'%> malheureusement cela ne fonctionne pas car Paramètre ne prend pas en charge la liaison de données...
Merci Jan, succédé dans le code-behind. Il n'est pas nécessaire de déclarer une Valeur par Défaut .fichier aspx. Ne peut ajouter à la codefehind fichier. protected void Page_Init(object sender, EventArgs e) { SqlDataSource1.InsertParameters["UserName"].DefaultValue = Utilisateur.L'identité.Nom; }
OriginalL'auteur Jan Jongboom
en page asp mettre un vide de la source de données avec un connectionstring
par exemple
dans le code derrière sur pageload
OriginalL'auteur user3394095
Vous pouvez également accomplir ceci par la création d'une zone de texte caché sur la page, s'appliquent à l'Utilisateur.L'identité.Nom de la valeur, puis utiliser la formcontrol paramètre dans la source de données SQL. L'avantage ici est que vous pouvez réutiliser le code dans le sélectionner, insérer, supprimer et mettre à jour les paramètres sans code supplémentaire.
Donc à aspx, nous avons (noneDisplay est une classe css pour le cacher):
et dans la mise à Jour des paramètres de la source de données sql de mise à jour de l'article:
qui obtient interprété à la mise à jour de quelque chose comme ceci:
et puis dans le .cs fichier de chargement du formulaire, nous avons:
Cette technique a bien fonctionné dans de nombreux endroits dans l'ensemble de nos applications.
Le mettre sur la page de la charge, de sorte que tout changement par l'utilisateur ne sera pas vu.
OriginalL'auteur done_merson