Javascript 如何根据选中的复选框值对gridview数据进行排序?
我正在使用asp.net网格视图。在我的gridview中有一个复选框。我希望选中复选框的行首先出现,然后其他行出现在下面。所以有两个标准,我还希望“选中”行和“未选中”行都按字母顺序排序Javascript 如何根据选中的复选框值对gridview数据进行排序?,javascript,asp.net,gridview,checkbox,Javascript,Asp.net,Gridview,Checkbox,我正在使用asp.net网格视图。在我的gridview中有一个复选框。我希望选中复选框的行首先出现,然后其他行出现在下面。所以有两个标准,我还希望“选中”行和“未选中”行都按字母顺序排序 <asp:DataGrid ID="grdItemList" runat="server" AutoGenerateColumns="False" BackColor="Transparent" BorderColor="#E0E0E0" BorderWidt
<asp:DataGrid ID="grdItemList" runat="server" AutoGenerateColumns="False"
BackColor="Transparent" BorderColor="#E0E0E0" BorderWidth="0px" CellPadding="0"
CssClass="DBGridStyle" DESIGNTIMEDRAGDROP="14" GridLines="Horizontal" TabIndex="15"
Width="100%" OnItemDataBound="grdItemList_ItemDataBound">
<AlternatingItemStyle CssClass="GridAlternateRowStyle" />
<ItemStyle CssClass="GridRowStyle" />
<HeaderStyle CssClass="GridColumnHeaderStyle" Font-Bold="True" />
<FooterStyle HorizontalAlign="Right" VerticalAlign="Middle" />
<Columns>
<asp:TemplateColumn>
<HeaderStyle Width="25px" />
<HeaderTemplate>
<asp:CheckBox ID="CheckAll" runat="server" language="javascript" onclick="return CheckAll_onclick(this.checked)" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="DeleteThis" runat="server" language="javascript" onclick="return DeleteThis_onclick(this.checked)" Checked='<%# DataBinder.Eval (Container.DataItem, "Selected") %>'/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="EmpCode" HeaderText="Code">
<HeaderStyle Width="100px" />
</asp:BoundColumn>
<asp:BoundColumn DataField="EmpName" HeaderText="Name">
<HeaderStyle Width="300px" />
</asp:BoundColumn>
<asp:BoundColumn DataField="AdParamCode" Visible="False" >
<HeaderStyle Width="100px" />
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Flat Amount">
<ItemTemplate>
<asp:TextBox ID="txtAmount" runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "Amount") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="% of Basic">
<HeaderTemplate>
% of Basic
</HeaderTemplate>
<EditItemTemplate>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="txtPercent" runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "PercentOfBasic") %>'></asp:TextBox>
</ItemTemplate>
<HeaderStyle Width="80px" />
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Applied Status">
<EditItemTemplate>
</EditItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="cboAppliedStat" runat="server" SelectedIndex='<%# DataBinder.Eval (Container.DataItem, "AppliedStat") %>'>
<asp:ListItem Selected="True">All</asp:ListItem>
<asp:ListItem>Higher</asp:ListItem>
<asp:ListItem>Lower</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
<HeaderStyle Width="100px" />
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
%基本的
全部的
较高的
降低
下面是一个使用northwind数据库的小演示。一旦理解了概念,您可以调整方法
网页:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApp.CheckboxSorting.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Customer Sort</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkBox" AutoPostBack="true" runat="server" OnCheckedChanged="chkBox_CheckedChanged" Checked='<%# Eval("Flag") %>' />
<asp:HiddenField ID="hfCustomerID" Value='<%# Eval("CustomerID") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID" />
<asp:BoundField DataField="CompanyName" HeaderText="Company" />
<asp:BoundField DataField="ContactName" HeaderText="Contact" />
<asp:BoundField DataField="Addr" HeaderText="Address" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
</div>
</form>
</body>
</html>
客户分类
代码隐藏:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI.WebControls;
namespace WebApp.CheckboxSorting
{
[Serializable]
public class CustomerModel
{
public CustomerModel()
{
Flag = false;
}
public bool Flag { get; set; }
public string CustomerID { get; set; }
public string CompanyName { get; set; }
public string ContactName { get; set; }
public string Addr { get; set; }
}
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (var db = new NorthwindDbContext())
{
var customers = db.Customers.Select(x => new CustomerModel() {
CustomerID = x.CustomerID,
Addr = x.Address,
CompanyName = x.CompanyName
}).Take(10).ToList();
ViewState["Data"] = customers;
GridView1.DataSource = customers;
GridView1.DataBind();
}
}
}
protected void chkBox_CheckedChanged(object sender, EventArgs e)
{
var lst = (List<CustomerModel>)ViewState["Data"];
var chkbx =(CheckBox)sender;
var hf = (HiddenField)chkbx.Parent.FindControl("hfCustomerID");
var id = hf.Value;
var item = lst.Single(x => x.CustomerID == id);
item.Flag = chkbx.Checked;
var lst1 = (from x in lst orderby x.Flag descending, x.CompanyName ascending select x).ToList();
GridView1.DataSource = lst1;
GridView1.DataBind();
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web.UI.WebControl;
命名空间WebApp.CheckboxSorting
{
[可序列化]
公共类CustomerModel
{
公共客户模型()
{
Flag=false;
}
公共布尔标志{get;set;}
公共字符串CustomerID{get;set;}
公共字符串CompanyName{get;set;}
公共字符串ContactName{get;set;}
公共字符串Addr{get;set;}
}
公共部分类默认值:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
使用(var db=new NorthwindDbContext())
{
var customers=db.customers.Select(x=>newcustomermodel(){
CustomerID=x.CustomerID,
地址=x.地址,
CompanyName=x.CompanyName
}).采取(10)措施;
ViewState[“数据”]=客户;
GridView1.DataSource=客户;
GridView1.DataBind();
}
}
}
受保护的无效chkBox_CheckedChanged(对象发送方,事件参数e)
{
var lst=(列表)视图状态[“数据”];
var chkbx=(复选框)发送方;
var hf=(HiddenField)chkbx.Parent.FindControl(“hfCustomerID”);
var id=高频值;
var item=lst.Single(x=>x.CustomerID==id);
item.Flag=chkbx.Checked;
var lst1=(从lst顺序中的x开始,x.Flag降序,x.CompanyName升序选择x);
GridView1.DataSource=lst1;
GridView1.DataBind();
}
}
}