桂林网站建设
您的位置: 首页> asp.net

我要叫喊

学习本类知识需要注意某些知识点,它们之间有些关联

      技术文档
      本站业务
      本类热点
  1. C#加密解密方法...
  2. 无法加载 DLL“...
  3. ASP.NET(C#)中...
  4. 省市连动菜单,省...
  5. DataList使用,网...
  6. DateTime.ToStrin...
  7. asp.net中的日历控...
  8. win2003服务器asp对...
  9. asp.net C# cookie清...
  10. ASP读写cookie的...
c#的GridView实现CheckBox不同页面之间选择传递

根据朋友蜜蜂猪的需求,完成c#的GridView实现CheckBox不同页面之间选择传递

源码下载:c#的GridView实现CheckBox不同页面之间选择传递.rar

test.aspx


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
    <script language="javascript" type="text/javascript">
function CheckAll(form)
  {
  for (var i=0;i<form.elements.length;i++)
    {
    var e = form.elements[i];
    if (e.name != 'chkall')
       e.checked = form.chkall.checked;
    }
}
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging"
            PageSize="2" OnRowDataBound="GridView1_RowDataBound">
            <Columns>
                <asp:TemplateField HeaderText="请选择">
                    <ItemTemplate>
                        <input  name="Checkbox1"  value="<%# Eval("Name")%>" <%#  rtn_check(Eval("Name").ToString())%> type="checkbox" />
                    </ItemTemplate>
                    <HeaderTemplate>
                        <input type="checkbox" name="chkall" value="on" onclick="CheckAll(this.form)" title='选中/取消选中'  style="width:16px;height:16px;" >
                    </HeaderTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <br />
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
   
    </div>
    </form>
</body>
</html>

 

test.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.Page.IsPostBack)
        {
            gridview_bind();
        }
    }

    private void gridview_bind()
    {
        GridView1.DataSource = rtn_table();
        GridView1.DataBind();
    }

    private DataTable rtn_table()
    {
        DataTable dt = new DataTable("Customers");

        DataColumn dc = new DataColumn("Name", typeof(System.String));
        dc.Caption = "姓名";
        dt.Columns.Add(dc);

        dc = new DataColumn("Sex", typeof(System.String));
        dc.Caption = "性别";
        dt.Columns.Add(dc);

        DataRow dr = dt.NewRow();
        dr[0] = "qj";
        dr[1] = "Male";
        dt.Rows.Add(dr);

        dr = dt.NewRow();
        dr[0] = "pjq";
        dr[1] = "Male";
        dt.Rows.Add(dr);

        dr = dt.NewRow();
        dr[0] = "lyp";
        dr[1] = "Female";
        dt.Rows.Add(dr);

        dr = dt.NewRow();
        dr[0] = "jb";
        dr[1] = "Female";
        dt.Rows.Add(dr);

        return dt;
    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        CollectSelected();

        GridView1.PageIndex = e.NewPageIndex;
        gridview_bind();
    }

    public void check_bind(string username)
    {
        //CheckBox chk = e.Row.FindControl("CheckBox1") as CheckBox;
        //if (this.SelectedItems.Contains(username))
        //    chk.Checked = true;
        //else
        //    chk.Checked = false;
    }

    protected ArrayList SelectedItems
    {
        get
        {
            return (ViewState["SelectedItems"] != null) ? (ArrayList)ViewState["SelectedItems"] : null;
        }
        set
        {
            ViewState["SelectedItems"] = value;
        }
    }


    protected void CollectSelected()
    {

 

        ArrayList selectedItems;
        if (this.SelectedItems == null)
            selectedItems = new ArrayList();
        else
            selectedItems = this.SelectedItems;
     
            string name_gridview = "";
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                name_gridview = GridView1.Rows[i].Cells[1].Text;
                selectedItems.Remove(name_gridview);
            }
     
       

           

        string names = Request.Form["Checkbox1"] == null ? "" : Request.Form["Checkbox1"].ToString();


        if (names.Trim() != "")
        {
            string[] names_array = names.Split(',');

            for (int i = 0; i < names_array.Length; i++)
            {
                string name = names_array[i];


                //if (chk != null)
                //{
                //    if (selectedItems.Contains(name) && !chk.Checked)
                //        selectedItems.Remove(name);

                //    if (!selectedItems.Contains(name) && chk.Checked)
                selectedItems.Add(name);

            }
        }
        this.SelectedItems = selectedItems;
    }

    public string rtn_check(string name)
    {

        if (this.SelectedItems != null)
        {
            if (this.SelectedItems.Contains(name))
                return "checked";
            else
                return "";
        }

        return "";
    }


    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //string name = "";
        //if (e.Row.Cells[1] != null)
        //{
        //    name = e.Row.Cells[1].Text;
        //}
        //CheckBox chk = e.Row.FindControl("CheckBox1") as CheckBox;
        //if(chk!=null)
        //{
        //    if (this.SelectedItems != null)
        //    {
        //        if (this.SelectedItems.Contains(name))
        //            chk.Checked = true;
        //        else
        //            chk.Checked = false;
        //    }
        //    else
        //    {
        //        chk.Checked = false;
        //    }
        //}

    }

 

    protected void Button1_Click(object sender, EventArgs e)
    {
        CollectSelected();
    }
}