- 浏览: 48356 次
- 性别:
- 来自: 北京
文章分类
最新评论
本文介绍如何在ASP.NET中实现多页面选择的问题。其具体思路很简单:用隐藏的INPUT记住每次选择的项目,在进行数据绑定时,检查保存的值,再在DataGrid中进行选中显示。下面时完整的代码和例子: 查看例子
SelectMultiPages.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" onclick="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>
SelectMultiPages.aspx.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>"); } #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 } }
发表评论
-
ASP.NET运行机制之一般处理程序(ashx)
2012-08-29 11:27 2243一. 概述 新建一个ashx文件 代码如下 ... -
c#验证18位身份证号码
2012-08-16 19:55 748http://www.mysjtu.com/page/M0/S ... -
时间格式处理
2012-08-09 15:32 465http://szx-susan-com.iteye.com/ ... -
在IIS6下实现.net的伪静态设置
2012-05-08 00:12 710鉴于搜索引擎的友好度,伪静态成为一种趋势。 1、 打开iis, ... -
Visual Studio 2008中创建web用户控件
2011-04-25 18:42 625http://developer.51cto.com/art/ ... -
ASP.NET中JSON的序列化和反序列化
2011-04-23 10:35 592http://www.cnblogs.com/zhaozhan ... -
ASP.Net开发常见问题(1)
2011-03-01 17:01 6391. 打开新的窗口并传送参数: 传送参数: resp ... -
数据源控件
2010-09-11 14:03 491http://www.code-design.cn/blogd ... -
VS 2008 下面开发Serverlight 程序的配置 (转载)
2010-08-29 17:50 1248安装Silverlight 2.0 的浏览器插件,用于播 ... -
LinQ 技术专题
2010-08-29 17:46 575http://kb.cnblogs.com/zt/linq/l ... -
什么是 SilverLight?
2010-08-25 13:55 615SilverLight是Windows PresentATIo ... -
Grove—— .Net下的ORM框架
2010-08-25 13:36 546http://blog.csdn.net/weinasi325 ... -
清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门 比较好
2010-08-20 18:20 660http://blog.csdn.net/21aspnet/a ... -
超强幻灯片播放 HTC (VBS)
2010-08-17 11:39 683此文章大家自己 ... -
VS2008 开发将在VS2005打开
2010-08-15 17:20 604动手修改VS2008的解决方案文件,以让VS2005打开它&l ...
相关推荐
GridView控件中实现跨页面多选
多选,签到,单选)在线示例安装使用npm安装 npm install --save vue-better-calendarES6方式导入 import VueBetterCalendar from 'vue-better-calendar' Vue.use(VueBetterCalendar)在组件中引入 <vue></vue>直接连...
1、数据绑定并实现分页功能 2、选中编辑取消删除数据项 3、GridView正反双向排序的功能 ...7、在GridView控件中实现跨页面多选 8、删除GridView控件行信息弹出确认提示框 9、在GridView控件中实现在动编号
里面包含了GRIDVIEW的数据绑定并实现分页功能、选中,编辑,取消,删除、实现正反双向排序功能、DropDownList控件的绑定、通过CheckBox删除选中记录、实现跨页面多选、删除GridView 控件行信息弹出确认提示框、实现...
科汛cms实现了“网站模板与程序完全分离”的新概念,独创ajax输出和JS标签跨站调用,支持不同频道、栏目、专题、内容页应用不同的模板,支持批量绑定模板,模板换肤更是一键之谈。 模板制作也非常方便,用户可以...
摘要:.NET源码,控件组件,GridView 环境下使用GridView控件的9个经典实例,数据库文件是Sql... 7、在GridView控件中实现跨页面多选 8、删除GridView控件行信息弹出确认提示框 9、在GridView控件中实现在动编号
《超实用的jQuery代码段》的代码跨平台、跨设备、跨浏览器,充分向读者演示了如何使用jQuery的各项技术,实现令人激动的网页效果。 《超实用的jQuery代码段》从jQuery框架的使用原理与应用场景出发,对最实用的...
跨应用的RPC调用,推荐使用将“错误码”和“错误简短信息”封装成Result的方式进行返回。 D .对外提供的接口,一定要保证逻辑健壮性:尽量避免空指针等技术类异常;对于业务类异常要做好错误码或者异常信息的封装...
用户能执行翻页、具有答题时间限制,展示给用户的试卷中题目需要占用尽量少的空间(比如选择题中把两条较短的选项由两行合并到一行)、同一道题目不要跨页面显示以方便答题者,管理员能够改变试卷的样式(字体、颜色...
基于php程序语言,提供跨平台的开放式构架,方便与其他系统进行整合。支持所有的主流平台,如Microsoft Windows NT/2000、Sun Solaris、AIX、Linux等。 6.模版引擎和组件工具 基于MVC module 2构架模式,实现...
实例多选反选取消 删选器以及Tab菜单示例 示例:模态编程框 jQuery 样式以及属性操作 示例:TAB切换菜单 jQuery内容操作 点赞以及jQuery css操作 JQuery高度以及位置操作 JQuery 事件绑定的方式 JQuery事件之组织...
新增通过transferTab选项禁用编辑器内Tab键插入空格功能,转而实现激活编辑器在页面上下一个表单控件;新增通过syncAfterBlur选项实现自动在编辑器失去焦点时执行同步(sync())操作;新增通过simpleWrap选项来优化...
CMS实现了“网站模板与程序完全分离”的新概念, JS标签跨站调用,支持不同频道、栏目、专题、内容页应用不同的模 模板制作也非常方便,用户可以发布自己制作的模板,也可以下载安装他人分享的模板。 不需写任何一行...
单选行,多选行,高亮显示选中的行,拖拽改变列宽度,按列排序,这些基本功能ExtJS轻量级实现。 自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染...
组件丰富、海量插件:拼图前端框架重新定义了CSS基础、常用元件及JS组件,可快速构架前端界面,实现跨屏响应。同时兼容所有jQuery插件,在项目中可以灵活使用,让前端开发如虎添翼。 轻量高效、国产开源:拼图基于...
Art2008 CMS实现了“网站模板与程序完全分离”的新概念, JS标签跨站调用,支持不同频道、栏目、专题、内容页应用不同的模 模板制作也非常方便,用户可以发布自己制作的模板,也可以下载安装他人分享的模板。 不需...
7.4.7 设置单元格跨行和跨列显示:horizontalSpan和verticalSpan属性 109 7.4.8 设置单元格空间的抢占方式:grabExcessHorizontalSpace和 grabExcessVerticalSpace属性 110 7.4.9 设置的控件大小:...