我一直在搜索这个问题已经有一段时间了,而且无法找到解决方案......
我有我的aspx文件,其中有一个asp:SqlDataSource,我希望得到的值等于Request.QueryString [" key"]。我为它定义了一个参数,但我找不到正确的语法来设置值。
目前它看起来像这样:
<SelectParameters>
<asp:Parameter Name="courseID" DefaultValue="<%= Request.QueryString["course_name"]
</SelectParameters>
我总是得到错误,但形成不好。什么是正确的语法,是否有一篇文章如何使用此&lt;%..%&gt;命令?
答案 0 :(得分:4)
有an MSDN page表示每个标签的内容及其作用。可能使用<%...%>
是不正确的,因为这只是一个代码标记。您希望<%=...%>
或<%:...%>
实际为页面写入值。
但是!实际上,如果我正在阅读你的问题是正确的,你不需要那些。要使SqlDataSource引入查询字符串值,您需要向数据源添加<SelectParameters>
标记,然后向其添加<QueryStringParameter>
。
编辑:
是的,看看你刚刚做的编辑,你肯定想要一个QueryStringParameter。
答案 1 :(得分:2)
您无法在高级asp控件中使用<%=
。该构造直接写入输出缓冲区,而控制需要首先处理。换句话说,不是在扩展控件之前处理<%=
,而是必须先扩展控件,然后才能处理<%=
。它们处于不同的抽象层次。
要做你想要完成的事情,而不是简单的<asp:Parameter>
使用<asp:QueryStringParameter>
。这将允许您从查询字符串中设置要使用的密钥。