0

我有两个显示最低和最高价格的下拉列表。

我想使用 RangeExpression 在另一个页面中显示这两个下拉列表值之间的所有产品范围。

两个下拉列表都在母版页上。现在,当我单击提交按钮时,所有产品都应显示在该价格范围内的另一个页面中。

所以我该怎么做?我应该使用什么作为我将传递给它的查询字符串?

我已经这样做了:

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
     ContextTypeName="linqextenderDataContext" EntityTypeName="" 
     TableName="Products" Where="Category == @Category">
     <WhereParameters>
         <asp:ControlParameter ControlID="dropcategory" Name="Category" 
              PropertyName="SelectedValue" Type="String" />
     </WhereParameters>
 </asp:LinqDataSource>
 <asp:QueryExtender ID="QueryExtender1" runat="server"
      TargetControlID="LinqDataSource1">
      <asp:RangeExpression DataField="Price" MinType="Inclusive"
           MaxType="Inclusive">
           <asp:ControlParameter ControlID="dropmin" Type="Int32"
                PropertyName="SelectedValue" />
           <asp:ControlParameter ControlID="dropmax" Type="Int32" 
                PropertyName="SelectedValue"/>
      </asp:RangeExpression>
  </asp:QueryExtender>

  <asp:Button ID="btnsubmit" runat="server" Text="Submit" 
       style="margin-left:50px" onclick="btnsubmit_Click"/>

现在我想在另一个页面中显示所有数据,所以当我将它重定向到另一个页面时,我应该传递什么?

protected void btnsubmit_Click(object sender, EventArgs e)
{
   Response.Redirect("products.aspx");        
}
4

1 回答 1

0

你很接近。

protected void btnsubmit_Click(object sender, EventArgs e)
{
    Response.Redirect(String.Format("products.aspx?min={0}&max={1}",
                      dropmin.SelectedValue, dropmax.SelectedValue);
}

然后在您的页面加载事件中,从查询字符串中读取最小值和最大值。

于 2014-03-01T06:57:43.210 回答