我想创建一个像http://localhost/menu.aspx/?id
这样的网址,这样在输入时,它会显示数据库中的所有ID。
例如:
134
123
543
234
可能是从数据库中提取后应显示的ID。但是,它应该显示为它没有任何控制或没有安排在任何网格等。如何做到这一点?
答案 0 :(得分:0)
如果您正在寻找跨两页的过滤数据,我在这里有一个示例......
Page1.aspx
Page2.aspx
Page1标记:
<asp:LinkButton Text='Product Ids' runat="server" CommandArgument='Submit' PostBackUrl='~/StackOverflowQs/QueryDBByQueryString.aspx?column=ids'>
</asp:LinkButton>
<br />
<asp:LinkButton Text='Product Names' runat="server" CommandArgument='Submit' PostBackUrl="~/StackOverflowQs/QueryDBByQueryString.aspx?column=names">
</asp:LinkButton>
Page2标记:
<asp:SqlDataSource ID='SqlDataSource1' runat='server'
SelectCommand='select productid, productname from products'
ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>">
</asp:SqlDataSource>
<asp:Repeater ID='Repeater1' runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%# Eval("ProductID") %>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
<asp:Repeater ID='Repeater2' runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%# Eval("ProductName") %>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
此页面有两个Repeater和一个sqldatasource,repeater1有项目模板显示所有产品ID,而repeater2的项目模板显示产品名称。 根据查询字符串,相应的转发器设置为通过绑定其数据源来显示数据,如下面的代码片段所示。
Page2代码:
protected void Page_Load(object sender, EventArgs e)
{
String queryString = Request.QueryString["column"];
if(queryString.Equals("ids"))
{
Repeater1.DataSourceID = "SqlDataSource1";
Repeater1.DataBind();
}
else if(queryString.Equals("names"))
{
Repeater2.DataSourceID="SqlDataSource1";
Repeater2.DataBind();
}
}