簡體   English   中英

如何基於下拉列表選擇對gridview進行排序

[英]how to sort gridview based on drop down list selection

我需要基於下拉列表顯示gridview:LastestTransactionFirst,EarlierTransactionFirst。 所以基本上它是基於gridview中的日期的desc或asc。 我可以知道應該怎么做嗎?

這是我用於gridview選擇的代碼。 但是我有一個下拉列表,需要基於該下拉列表的選擇顯示gridview。

    myConnection.ConnectionString = strConnectionString;
    SqlCommand cmd = new SqlCommand("SELECT thDate, thType, thAmountIn, thAmountOut from [Transaction] ORDER BY thDate, thType, thAmountIn, thAmountOut DESC", myConnection);
    myConnection.Open();
    SqlDataReader reader1 = cmd.ExecuteReader();
    GridView1.DataSource = reader1;
    GridView1.DataBind();

1)您可以在查詢中使用動態訂單依據 ,最好使用存儲過程

2)快速和骯臟的方式將通過您的下拉列表中的selectedValue選定索引更改事件並重新綁定您的gridview,還使下拉列表中的autopostback變為true。 就像是

protected void yourDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
   BindYourGridView(yourDropDown.SelectedValue);  
}

BindYourGridView(string sortParam)
{
   string orderBy=null;
   switch sortParam
   {
         case 0:
             orderBy= "ORDER BY thDate, thType, thAmountIn, thAmountOut DESC"
             break;
         case 1:
             orderBy= "ORDER BY thDate, thType, thAmountIn, thAmountOut"
             break;   
   }
  string yourQuery= "Select columns from table "+ orderBy;
  // Your data access code
  // Bind your gridview
}


//ASPX
   <asp:DropDownList ID="yourDropDownList" runat="server" AutoPostBack="True">
   <asp:ListItem Text="Recent First" Value="0" />
   <asp:ListItem Text="Earlier First" Value="1" />
   </asp:DropDownList>

這是在gridview中排序的一個示例

DataView dvItems = new DataView((DataTable)ds.Tables["datatable1"]);

 if (ddl_itemsorderby.SelectedValue == "MenuGroup")
     dvItems.Sort = "Menu_Group, Item_Name ASC";
 else if (ddl_itemsorderby.SelectedValue == "Item")
     dvItems.Sort = "Item_Name, Menu_Group ASC";
 else if (ddl_itemsorderby.SelectedValue == "Rate")
     dvItems.Sort = "Item_rate, Item_Name ASC";
 else if (ddl_itemsorderby.SelectedValue == "Quantity")
     dvItems.Sort = "Item_Quantity, Item_Name ASC";

 gridview1.DataSource = dvItems;
 gridview1.DataBind();

這里的Menu_Group,Item_name ...是綁定到gridview的數據表中的列名。

“ Menu_Group,Item_Name ASC”這意味着將對Menu_Group賦予第一順序優先級,對Item_Name賦予第二順序優先級。 ASC是訂單類型將升序

ddl_itemsorderby是將從中選擇列順序的下拉列表。
dvitems是dataview。

ASC是升序。

您必須創建一個包含數據表中數據的數據視圖,然后對數據視圖中的值進行排序,然后將數據視圖綁定到網格視圖

暫無
暫無

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

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