我有一个包含播放/戏剧脚本的数据库表。剧本可以分类为“戏剧与教育”,“青少年戏剧”或两者(通过使用bool来确定它们是否属于所述类别);
在主菜单中,我有一个下拉列表,其中包含以下链接;
当用户点击其中一个链接时,会将其转到包含列表视图的页面。我希望这个listview填充与所单击的链接对应的记录。
我猜测需要一个查询字符串,但我想不出一个可以使用的查询字符串。
以下是当前状态的列表视图。有关查询字符串的任何想法以及如何配置sql数据源以根据单击的链接显示相应的脚本记录?
<asp:ListView ID="scriptsListView" runat="server" DataSourceID="SqlDataSource1">
<LayoutTemplate>
<table>
<tr>
<td>title</td>
<td>summary</td>
<td>image</td>
</tr>
<tr>
<asp:PlaceHolder ID="itemPlaceholder" runat="server">
</asp:PlaceHolder>
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval ("scriptTitle") %></td>
<td><%# Eval ("scriptSample") %></td>
<td><asp:Image ID="image" runat="server"
ImageUrl='<%# "~/Images/Scripts/" + Eval("thumbImageUrl") %>' /></td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="">
<SelectParameters>
</SelectParameters>
</asp:SqlDataSource>
答案 0 :(得分:1)
在page_load
上设置sqldatasource的select语句a runat =“server”href =“〜/ WebForm / scriptList?type = theatre”&gt; theatre&amp;教育
一个runat =“server”href =“〜/ WebForms / scriptList?type = plays”&gt;扮演4个年轻人
protected void Page_Load(object sender,EventArgs e)
if(Page.IsPostBack == false) { string s;
if (Request.QueryString["type"]=="theatre")
{
s="select * from scripts where theatreAndEducation = 1";
}
else
if (Request.QueryString["type"]=="plays")
{
s = "select * scripts where playsForYoungPeople = 1";
}
SqlDataSource1.SelectCommand = s;
} }
答案 1 :(得分:0)
您可以传递一个区分两个视图的查询字符串参数。 此外,在后面的代码中,在SqlDataSource的Select事件中,您可以替换select命令。