2010-12-08 6 views
0

je cherche cela depuis un certain temps et ne pouvait pas trouver une solution ...En utilisant ASP <% .... %> Balises

J'ai mon fichier ASPX et un asp: SqlDataSource, où je veux obtenir des valeurs qui sont égales à Request.QueryString ["key"]. J'ai défini un paramètre mais je ne trouve pas la bonne syntaxe pour définir la valeur.

Actuellement, il cherche comme ceci:

<SelectParameters> 
    <asp:Parameter Name="courseID" DefaultValue="<%= Request.QueryString["course_name"] 
</SelectParameters> 

où je reçois toujours l'erreur, il est pas bien formé. Quelle est la syntaxe correcte, et y a-t-il un article comment vous utilisez cette <% ..%> commandes?

+0

Pouvez-vous montrer un exemple de votre code? –

Répondre

4

Il y a an MSDN page qui va sur ce que chaque étiquette est et ce qu'elle fait. Probablement en utilisant <%...%> n'est pas correct, car c'est juste une étiquette de code. Vous voulez <%=...%> ou <%:...%> qui écrivent réellement des valeurs à la page.

Mais! En fait, si je lis ce que votre problème est correctement, vous ne voulez ni l'un ni l'autre. Pour qu'un SqlDataSource tire une valeur de chaîne de requête, vous voulez ajouter une balise <SelectParameters> à la source de données, puis ajouter un <QueryStringParameter> à cela.

Edit:

Eh oui, en regardant l'édition que vous venez de faire, vous voulez certainement un QueryStringParameter.

2

Vous ne pouvez pas utiliser <%= dans les contrôles ASP de haut niveau. Cette construction écrit directement dans le tampon de sortie, alors que les contrôles doivent d'abord être traités. En d'autres termes, plutôt que de traiter votre <%= avant d'étendre le contrôle, il faut d'abord développer le contrôle avant de pouvoir traiter votre <%=. Ils sont à différents niveaux d'abstraction. Pour faire ce que vous voulez accomplir, plutôt qu'un simple <asp:Parameter> utilisez un <asp:QueryStringParameter> Cela vous permettra de définir la clé que vous voulez utiliser à partir de la chaîne de requête.

Questions connexes