我有一个DataGridView,它使用模板字段和绑定的Item模板,由于这种手动数据绑定实现,我很难找到按列排序数据的方法(Asc,Des)。
有人可以举例说明如何实现这一点或指出我出错的地方。
示例模板字段:
<asp:TemplateField HeaderText="User ID">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("UserID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
绑定数据代码:
private void BindData()
{
DataTable dt = new DataTable();
using (MySqlConnection cn = new MySqlConnection(conString))
{
MySqlDataAdapter adp = new MySqlDataAdapter("SELECT UserID,firstname,surname,department,email,username,role,lastlogin,pwordreset FROM users", cn);
adp.Fill(dt);
if (dt.Rows.Count > 0)
{
usersGridView.DataSource = dt;
usersGridView.DataBind();
}
}
}
使用下拉列表时要调用的排序函数:
private void sortGV(string value)
{
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand cmd;
DataView dv;
string sql = "SELECT UserID,firstname,surname,department,email,username,role,lastlogin,pwordreset FROM users";
cmd = new MySqlCommand(sql, con);
adapter.SelectCommand = cmd;
//Fill dataset
adapter.Fill(ds);
dv = new DataView(ds.Tables[0]);
dv.Sort = value;
usersGridView.DataSource = dv;
}
感谢。