ASP.NET Réglage de paramètre pour SqlDataSource par programme ne fonctionne pas pour publication
Je veux définir un paramètre pour un SqlDataSource par programmation comme décrit dans l'Étape 5 à http://www.asp.net/data-access/tutorials/using-parameterized-queries-with-the-sqldatasource-vb . Aussi un GridView est lié à la sqlDataSource. Mon langage est:
<asp:SqlDataSource ID="mySqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionStringHTL %>"
SelectCommand="SELECT [subscription_con] FROM [HTL_CONSUME_CON] WHERE ([subscription_con] = @subscription_con)">
<SelectParameters>
<asp:Parameter Name="subscription_con" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView ID="myGridView" runat="server" AllowPaging="True"
AllowSorting="True" DataSourceID="mySqlDataSource">
</asp:GridView>
Dans le code-behind, j'ai:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
mySqlDataSource.SelectParameters("subscription_con").DefaultValue = calcResult()
End Sub
La valeur de retour de valeur du type énuméré calcresult() est différent pour chaque publication. La publication se produit lorsque l'utilisateur clique sur un Bouton dans le formulaire qui a UseSubmitBehavior=True.
J'ai utiliser le débogueur pour parcourir le code derrière et je vois qu'il a exécuté pour chaque chargement de la page et je vois les valeurs attendues retourné à partir de clacResult().
Cependant le DataGrid lié n'est jamais mis à jour sur les publications, il met à jour uniquement sur la première page de la charge.
Si je change le SqlDataSource paramètre d'avoir un contrôle de la source, puis il travaille sur les publications. Dans otherwords, j'ai changé la balise à utiliser:
<asp:ControlParameter ControlID="myTextBox" Name="subscription_con" PropertyName="Text" Type="Int32" />
et j'ai changé le code derrière:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
myTextBox.Text = calcResult()
End Sub
Avec le contrôle de zone de texte comme la source de la SqlDataSource paramètre, mise à jour de la GridView travaille pour la page d'origine de la charge et toutes les publications. Cependant, je n'ai vraiment pas besoin pour la zone de texte et préfère ne pas l'utiliser.
Que suis-je en manquant sur la façon de définir un paramètre par programme pour un SqlDataSource? Pourquoi n'est-il pas lié à GridView obtenir des mises à jour sur les publications lors de la configuration de la SqlDataSource paramètre par programme lorsqu'il n'y a pas de contrôle de la source?
OriginalL'auteur harrije | 2010-06-04
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'un explicit databaind sur les publications:
Devrait le faire.
Je la renvoie, elle a fait un travail. Je dois avoir fait quelque chose de mal quand j'ai d'abord essayé hier. Merci!
Cela a résolu plusieurs problèmes de la mine. Merci beaucoup
OriginalL'auteur Paddy
C#
Gourmand Réseaux.
OriginalL'auteur Greedy