datagrid跨页实现多选

datagrid跨页实现多选
datagrid跨页实现多选
<!--  aspx的  -->  
<%@  Page  EnableViewState="true"  CodeBehind="SelectMultiPages.aspx.cs"  Language="c#"    
AutoEventWireup="false"  Inherits="eMeng.Exam.SelectMultiPages"  %>  
<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.0  Transitional//EN">  
<HTML>  
<HEAD>  
<title>跨页面实现多选</title>  
<META  http-equiv="content-type"  content="text/html;  charset=gb2312">  
<style>  
*  {}{FONT-SIZE:12PX}  
#Status  {}{text-align:left}  
</style>  
<script  language="javascript">  
function  AddRemovevalues(oChk)  {    
//在处理这个地方需要注意的是:你保存的值应该具有唯一性,这样才能不会替换错误的项。  
if(oChk.checked)  
SelectMultiPage.HdnSelectedvalues.value  +=  ","  +  oChk.value;    
else  
SelectMultiPage.HdnSelectedvalues.value  =  SelectMultiPage.HdnSelectedvalues.value.replace(","  +  oChk.value,"");    
}  
</script>  
</HEAD>  
<BODY>  
<form  id="SelectMultiPage"  runat="server">  
<asp:datagrid  id="DataGrid1"  HorizontalAlign="Center"  AutoGenerateColumns="False"  Width="600px"  
                AllowPaging="True"  runat="server">  
        <AlternatingItemStyle  BackColor="#EEEEEE"></AlternatingItemStyle>  
        <HeaderStyle  BackColor="#AAAADD"  Font-Bold="True"  HorizontalAlign="Center"></HeaderStyle>  
        <PagerStyle  HorizontalAlign="Right"  Mode="NumericPages"  Visible="True"></PagerStyle>  
        <Columns>  
                <asp:TemplateColumn  HeaderText="选择">  
                        <ItemTemplate>  
                                <input  type="checkbox"  runat="server"  id="chkSelect"  οnclick="AddRemovevalues(this)"  
                                        value='<%#DataBinder.Eval(Container.DataItem,"Title")%>'/>  
                        </ItemTemplate>  
                </asp:TemplateColumn>  
                <asp:TemplateColumn  HeaderText="文章标题">  
                        <ItemTemplate>  
                                <asp:Literal  Text='<%#  DataBinder.Eval(Container.DataItem,  "Title")  %>'  runat="server"  ID="TitleShow"/>  
                        </ItemTemplate>  
                </asp:TemplateColumn>  
                <asp:TemplateColumn  HeaderText="发布时间">  
                        <ItemTemplate>  
                                <asp:Literal  Text='<%#  DataBinder.Eval(Container.DataItem,  "CreateDate").ToString()  %>'  runat="server"/>  
                        </ItemTemplate>  
                </asp:TemplateColumn>  
        </Columns>  
</asp:datagrid>  
<div  align=center>  
<asp:button  id="Button1"  runat="server"  Text="得到所选的值"></asp:button>  
<div  id="Status">  
<asp:label  id="Label1"  runat="server"></asp:label>  
</div>  
<INPUT  id="HdnSelectedvalues"  type="hidden"  name="HdnSelectedvalues"  runat="server">  
</div>  
</form>  
</BODY>  
</HTML>  
  
  //cs的  
using  System;  
using  System.Collections;  
using  System.ComponentModel;  
using  System.Data;  
using  System.Data.OleDb;  
using  System.Drawing;  
using  System.Web;  
using  System.Web.SessionState;  
using  System.Web.UI;  
using  System.Web.UI.WebControls;  
using  System.Web.UI.HtmlControls;  
  
namespace  eMeng.Exam  
{  
/**  <summary>  
///  SelectMultiPages  的摘要说明。  
///  </summary>  
public  class  SelectMultiPages  :  System.Web.UI.Page  
{  
protected  System.Web.UI.WebControls.Button  Button1;  
protected  System.Web.UI.WebControls.Label  Label1;  
protected  System.Web.UI.HtmlControls.HtmlInputHidden  HdnSelectedvalues;  
protected  System.Web.UI.WebControls.DataGrid  DataGrid1;  
  
private  void  Page_Load(object  sender,  System.EventArgs  e)  
{  
        //  在此处放置用户代码以初始化页面  
        if(!Page.IsPostBack)  
        BindData();  
}  
private  void  DataGrid1_PageIndexChanged(object  source,  DataGridPageChangedEventArgs  e)  
{  
        DataGrid1.CurrentPageIndex  =  e.NewPageIndex;  
        BindData();    
}  
  
void  BindData()  
{  
        OleDbConnection  cn  =  new  OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data  Source="    
                +  HttpContext.Current.Server.MapPath("aspx.mdb"));  
        OleDbDataAdapter  da  =  new  OleDbDataAdapter("Select  Title,  CreateDate  from  Document",cn);  
        DataSet  ds  =  new  DataSet();  
        da.Fill(ds);  
        DataGrid1.DataSource=  ds;  
        DataGrid1.DataBind();  
}  
  
private  void  DataGrid1_ItemDataBound(object  sender,  System.Web.UI.WebControls.DataGridItemEventArgs  e)  
{  
        //重新显示所选择的项目  
        if(e.Item.ItemType  ==  ListItemType.Item  ||  e.Item.ItemType  ==  ListItemType.AlternatingItem)  
        {  
                if(HdnSelectedvalues.value.IndexOf(((Literal)e.Item.Cells[1].FindControl("TitleShow")).Text)  >=  0  )  
                {  
                        HtmlInputCheckBox  ChkSelected  =  (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("ChkSelect"));  
                        ChkSelected.Checked  =  true;  
                }  
        }  
}  
private  void  Button1_Click(object  sender,  System.EventArgs  e)  
{  
        //为了显示的方便进行替换的  
        Label1.Text  =  HdnSelectedvalues.value.Replace(",","<li>");  
}  
  
Web  窗体设计器生成的代码#region  Web  窗体设计器生成的代码  
override  protected  void  OnInit(EventArgs  e)  
{  
        //  
        //  CODEGEN:  该调用是  ASP.NET  Web  窗体设计器所必需的。  
        //  
        InitializeComponent();  
        base.OnInit(e);  
}  
  
/**  <summary>  
///  设计器支持所需的方法  -  不要使用代码编辑器修改  
///  此方法的内容。  
///  </summary>  
private  void  InitializeComponent()  
{          
        this.DataGrid1.ItemDataBound  +=    
                new  System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);  
        this.DataGrid1.PageIndexChanged  +=    
                new  System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);  
        this.Button1.Click  +=  new  System.EventHandler(this.Button1_Click);  
        this.Load  +=  new  System.EventHandler(this.Page_Load);  
  
}  
#endregion          
  
}  
}  
  
  
--------------转自孟宪会精彩世界------------  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值