CheckBox实现跨页面多选【转】

在很多程序中需要使用CheckBox的跨页面复选功能,本例实现了GridView多页复选功能
SelectMultiPages.aspx
 1 <% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " SelectMultiPages.aspx.cs "
 2     Inherits = " SelectMultiPages "   %>
 3
 4 <! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.0 Transitional//EN " >
 5 < html >
 6 < head runat = " server " >
 7      < title > 跨页面实现多选 </ title >
 8      < meta http - equiv = " content-type "  content = " text/html; charset=gb2312 " >
 9      < style >
10 ExpandedBlockStart.gifContractedBlock.gif *   {FONT-SIZE:12PX}
11 ExpandedBlockStart.gifContractedBlock.gif#Status  {text-align:left}
12 </ style >
13
14      < script language = " JAVASCRIPT " >
15          var tgs; 
16          var tmp_background_val; 
17          function tog(n,flags)
18 ExpandedBlockStart.gifContractedBlock.gif         
19            //傳過來本次點擊前的的背景顏色 
20ExpandedSubBlockStart.gifContractedSubBlock.gif            if (tgs)
21             tgs.style.background= tmp_background_val ; 
22            }
 
23            //考慮到連續點同一個對象的情況,就不要改變保留的顏色 
24            n.style.background= '#99ccff' ; 
25            tmp_background_val=flags;
26            tgs=n; 
27         }
    
28          function AddRemoveValues(oChk) 
29 ExpandedBlockStart.gifContractedBlock.gif          {
30           //在处理这个地方需要注意的是:你保存的值应该具有唯一性,这样才能不会替换错误的项。
31           if(oChk.checked)  
32               SelectMultiPage.HdnSelectedValues.value += "," + oChk.value; 
33           else
34               SelectMultiPage.HdnSelectedValues.value = SelectMultiPage.HdnSelectedValues.value.replace("," + oChk.value,""); 
35          }

36      </ script >
37
38 </ head >
39 < body >
40      < form id = " SelectMultiPage "  runat = " server " >
41          < asp:GridView ID = " DataGrid1 "  HorizontalAlign = " Center "  AutoGenerateColumns = " False "
42             Width = " 600px "  AllowPaging = " True "  runat = " server "  OnRowDataBound = " DataGrid1_RowDataBound "
43             OnPageIndexChanging = " DataGrid1_PageIndexChanging " >
44              < AlternatingRowStyle BorderColor = " #EEEEEE "   />
45              < HeaderStyle BackColor = " #AAAADD "  Font - Bold = " True "  HorizontalAlign = " Center "   />
46              < PagerSettings Mode = " Numeric "  Position = " Bottom "  Visible = " true " />
47              < Columns >
48                  < asp:TemplateField HeaderText = " 选择 " >
49                      < ItemTemplate >
50                          < input type = " checkbox "  runat = " server "  id = " chkSelect "  onclick = " AddRemoveValues(this) "
51                             value = ' <%#Eval("Label")%> '   />
52                      </ ItemTemplate >
53                  </ asp:TemplateField >
54                  < asp:TemplateField HeaderText = " 页面标题 " >
55                      < ItemTemplate >
56                          < asp:Literal Text = ' <%# Eval("Label") %> '  runat = " server "  ID = " TitleShow "   />
57                      </ ItemTemplate >
58                  </ asp:TemplateField >
59                  < asp:TemplateField HeaderText = " 链接地址 " >
60                      < ItemTemplate >
61                          < asp:Literal ID = " Literal1 "  Text = ' <%# Eval("Link") %> '  runat = " server "   />
62                      </ ItemTemplate >
63                  </ asp:TemplateField >
64              </ Columns >
65          </ asp:GridView >
66          < div align = " center " >
67              < asp:Button ID = " Button1 "  runat = " server "  Text = " 得到所选的值 "  OnClick = " Button1_Click1 " ></ asp:Button >
68              < div id = " Status "  align = " center " >
69                  < asp:Label ID = " Label1 "  runat = " server " ></ asp:Label >
70              </ div >
71              < input id = " HdnSelectedValues "  type = " hidden "  name = " HdnSelectedValues "  runat = " server " >
72          </ div >
73      </ form >
74 </ body >
75 </ html >
SelectMultiPages.aspx.cs
 1 using  System;
 2 using  System.Data;
 3 using  System.Data.SqlClient;
 4 using  System.Configuration;
 5 using  System.Collections;
 6 using  System.Web;
 7 using  System.Web.Security;
 8 using  System.Web.UI;
 9 using  System.Web.UI.WebControls;
10 using  System.Web.UI.WebControls.WebParts;
11 using  System.Web.UI.HtmlControls;
12
13 public  partial  class  SelectMultiPages : System.Web.UI.Page
14 ExpandedBlockStart.gifContractedBlock.gif {
15    protected SqlConnection conn;
16    protected SqlCommand comm;
17    protected MX.Data.Connection connstr = new MX.Data.Connection();
18   protected  void Page_Load(object sender, System.EventArgs e)
19ExpandedSubBlockStart.gifContractedSubBlock.gif{
20 // 在此处放置用户代码以初始化页面
21 if(!Page.IsPostBack)
22 BindData();
23}

24
25void BindData()
26ExpandedSubBlockStart.gifContractedSubBlock.gif{
27 conn=connstr.SqlConnection;
28 SqlDataAdapter da=new SqlDataAdapter("Select ID,Label,Link from Sys_Page_Info",conn);
29 DataSet ds = new DataSet();
30 da.Fill(ds);
31 DataGrid1.DataSource= ds;
32 DataGrid1.DataBind();
33}

34
35ContractedSubBlock.gifExpandedSubBlockStart.gifWeb 窗体设计器生成的代码#region Web 窗体设计器生成的代码
36override protected void OnInit(EventArgs e)
37ExpandedSubBlockStart.gifContractedSubBlock.gif{
38 //
39 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
40 //
41 InitializeComponent();
42 base.OnInit(e);
43}

44
45ExpandedSubBlockStart.gifContractedSubBlock.gif/**//// <summary>
46/// 设计器支持所需的方法 - 不要使用代码编辑器修改
47/// 此方法的内容。
48/// </summary>

49private void InitializeComponent()
50ExpandedSubBlockStart.gifContractedSubBlock.gif{
51 
52}

53#endregion
 
54
55    protected void DataGrid1_RowDataBound(object sender, GridViewRowEventArgs e)
56ExpandedSubBlockStart.gifContractedSubBlock.gif    {
57        //重新显示所选择的项目
58        if (e.Row.RowType == DataControlRowType.DataRow)
59ExpandedSubBlockStart.gifContractedSubBlock.gif        {
60            e.Row.Attributes.Add("onclick","tog(this,'AliceBlue')");
61            if (HdnSelectedValues.Value.IndexOf(((Literal)e.Row.Cells[1].FindControl("TitleShow")).Text) >= 0)
62ExpandedSubBlockStart.gifContractedSubBlock.gif            {
63                HtmlInputCheckBox ChkSelected = (HtmlInputCheckBox)(e.Row.Cells[0].FindControl("ChkSelect"));
64                ChkSelected.Checked = true;
65            }

66        }

67    }

68    protected void DataGrid1_PageIndexChanging(object sender, GridViewPageEventArgs e)
69ExpandedSubBlockStart.gifContractedSubBlock.gif    {
70        DataGrid1.PageIndex = e.NewPageIndex;
71        BindData();
72    }

73    protected void Button1_Click1(object sender, EventArgs e)
74ExpandedSubBlockStart.gifContractedSubBlock.gif    {
75        //为了显示的方便进行替换的
76        Label1.Text = HdnSelectedValues.Value.Replace(",""<li>");
77    }

78}
本文来自 : http://www.cnblogs.com/huangwen/archive/2007/02/09/645559.html

转载于:https://www.cnblogs.com/Godblessyou/archive/2010/07/17/1779437.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值