使用具有相同id的查询字符串传递多个值

时间:2011-03-07 10:22:30

标签: asp.net query-string

我有一个数据列表,我想列出来自Querystring的产品。它的工作原理如下:Default.aspx/?ProductID=1 我得到了一个像我想要的产品。 但我想添加更多这样的产品Default.aspx/?ProductID=1,15,25 并获得三个产品。我如何让它工作?

<asp:DataList ID="DataList1" runat="server">
    <ItemStyle VerticalAlign="Top" />
    <ItemTemplate>
        <a href="../Product/Default.aspx?ProductID=<%#Eval("ProductID") %>">
            <asp:Label ID="lblName" runat="server" Text='<%#Eval("Name") %>' />
            <asp:Label ID="lblPrice" runat="server" Text='<%#Eval("Price") %>' />
        </a>
    </ItemTemplate>
</asp:DataList>


  protected void Page_Load(object sender, EventArgs e)
{
    string id = Request.QueryString["ProductID"];

    DataTable table = CategoryAccess.GetList(id);

    list.DataSource = table;
    list.DataBind();     
}


ALTER PROCEDURE GetList
@ProductID INT

AS
SELECT ProductID, Name, Price 
FROM Product
WHERE (ProductID = @ProductID)

1 个答案:

答案 0 :(得分:2)

你可以:

/page.aspx?ProductID=1&ProductID=15&ProductID=25

然后Request.Querystring("ProductID")将返回1,15,25

然后可以将其放入类似ArrayList

Request.Querystring("ProductID").split(",")

将这3个值作为参数传递虽然有点棘手,但最好将它作为xml传递:

Passing multiple values for one SQL parameter