передача более одного значения с помощью строки запроса с тем же идентификатором - PullRequest
1 голос
/ 07 марта 2011

У меня есть список данных, который я хочу перечислить продукты, поступающие из строки запросов.Это работает так: Default.aspx/?ProductID=1 Я получаю 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 Ответ

2 голосов
/ 07 марта 2011

Вы можете иметь:

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

Тогда Request.Querystring("ProductID") вернется 1,15,25

Это может быть помещено в ArrayList как Request.Querystring("ProductID").split(",")

Передача этих трех значений в качестве параметра немного сложнее, но, вероятно, лучше всего передать его как xml:

Передача нескольких значений для одного параметра SQL

...