2011-03-07 6 views
1

쿼리 문자열에서 오는 제품을 나열하려는 데이터 목록이 있습니다. 그것은 다음과 같이 작동합니다 : Default.aspx/?ProductID=1 내가 원하는 제품을 1 개받습니다. 하지만이 같은 제품을 더 추가하고 싶습니다. Default.aspx/?ProductID=1,15,25 그리고 3 가지 제품을 되 찾으십시오. 어떻게 작동시킬 수 있습니까?동일한 ID를 가진 쿼리 문자열과 함께 하나 이상의 값을 전달합니다.

<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

쿼리 문자열을 사용할 때 해당 문자열이 음수임을 잊지 마십시오. 요청할 경우 앱이 수행 할 작업은 무엇입니까? Default.aspx /? ProductID = Nicklas – SWeko

+0

코드를 짧게 만들었고 여기서는 짧게 만들었습니다. 번호가 데이터베이스와 일치하면 오류 메시지가 나타납니다. – Nicklas

답변

2

당신은 할 수 있습니다 :

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

다음 Request.Querystring("ProductID")1,15,25

이 그때 그 세 값을 전달 ArrayListRequest.Querystring("ProductID").split(",") 같은

에 투입 할 수 있습니다 반환하는 매개 변수는 그대로 조금 더 까다 롭긴하지만 아마도 xml로 전달하는 것이 가장 좋습니다.

Passing multiple values for one SQL parameter

관련 문제