簡體   English   中英

如何從帶有下拉列表的存儲過程中過濾gridview?

[英]how to filter a gridview from a stored procedure with a drop down list?

我已經在這個問題上停留了幾個小時,似乎無法弄清楚。 我有一個從sql數據源填充的gridview taht給了我這張表: 在此處輸入圖片說明

我想添加一個自定義下拉列表,其數字為1,5,7,以按最小動物數量過濾此數據。 這是下拉菜單的代碼。

  Minimum Animals:
          <asp:DropDownList ID="ddlMinimumAnimals" runat="server" 
            AutoPostBack = "True" AppendDataBoundItems = "True">         
              <asp:ListItem Text = "1" Value = "1"></asp:ListItem>
              <asp:ListItem Text = "5" Value = "1"></asp:ListItem>
              <asp:ListItem Text = "7" Value = "1"></asp:ListItem>           
        </asp:DropDownList>

我只是希望當我單擊下拉列表時,它將表格過濾到最小,我發現的所有教程都沒有使用存儲過程,所以我不確定如何綁定數據。

Gridview代碼:

     <asp:GridView ID="GridView2" class="grids" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource2" AllowSorting="True" AllowPaging="True">
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="Animals" HeaderText="Animals" SortExpression="animals" />
            <asp:BoundField DataField="Company" HeaderText="Company" SortExpression="company" />
        </Columns>
    </asp:GridView>

無法真正確定您是否要向網格或包含網格的表單添加自定義下拉列表。 您可以在數據適配器上創建自定義填充,但如果是我,則將數據轉儲到數據表中,或者對它運行linq查詢以基於下拉列表獲取所需的值,或者使用DataView並轉儲數據一旦過濾就回到原始表中。 祝好運。

您將需要編寫一些代碼來修改您的數據源並將兩個控件掛鈎在一起。 它來自存儲過程的事實沒有區別。

控制項:

  <asp:DropDownList ID="ddlMinimumAnimals" runat="server" AutoPostBack = "True">         
      <asp:ListItem Text = "1" Value = "1"></asp:ListItem>
      <asp:ListItem Text = "5" Value = "1"></asp:ListItem>
      <asp:ListItem Text = "7" Value = "1"></asp:ListItem>           
  </asp:DropDownList>

 <asp:GridView ID="GridView2" class="grids" runat="server" AutoGenerateColumns="False" AllowSorting="True" AllowPaging="True">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
        <asp:BoundField DataField="Animals" HeaderText="Animals" SortExpression="animals" />
        <asp:BoundField DataField="Company" HeaderText="Company" SortExpression="company" />
    </Columns>
</asp:GridView>

基本代碼(在代碼隱藏或服務器腳本標簽中):

'Im assuming your going to run this on every page load'
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Page.IsPostBack() Then

        'use this number to limit your query via SQL-TOP-Clause or Limit or whatever'
        Dim minAnimals As Integer = CInt(ddlMinimumAnimals.SelectedValue)

        'get your data here ... lets assume you call it "yourData"'

        ' then bind your data to the gridview.'
        GridView2.DataSource = yourData
        GridView.DataBind()

    End If

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM