我需要根据下拉列表显示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();
答案 0 :(得分:1)
1)您可以在查询中使用Dynamic Order By,最好使用存储过程
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>
答案 1 :(得分:0)
这是在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是数据视图。
ASC是升序。
您必须创建一个包含数据表中数据的数据视图,然后对数据视图中的值进行排序,然后将数据视图绑定到gridview