繁体中文
设为首页
加入收藏
当前位置:网络编程首页 >> .Net编程 >> 在ASP.NET中跨页面实现多选

在ASP.NET中跨页面实现多选

2007-07-06 23:20:59  作者:  来源:  浏览次数:664  文字大小:【】【】【

本文介绍如何在A .NET中实现多页面选择的问题。其具体思路很简单:用隐藏的I UT记住每次选择的项目,在进行数据绑定时,检查保存的值,再在DataGrid中进行选中显示。下面时完整的代码和例子:

查看例子


SelectMultiPages.a x

<%@ Page EnableViewState="true" CodeBehind=" electMultiPages.a x.c quot; Language="c#"
AutoEventWireup="false" Inherits="eMeng.Exam.SelectMultiPage quot; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Tra itional//E quot gt;
<HTML>
<HEAD>
<title>跨页面实现多选</title>
<META http-equiv="content-type" content="text/html; charset=gb2312" gt;
< tyle>
* {FONT-SIZE:12PX}
#Status {text-align:left}
</style>
< cript language="JAVASCRIPT" gt;
function AddRemoveValues(oChk) {
//在处理这个地方需要注意的是:你保存的值应该具有唯一性,这样才能不会替换错误的项。
if(oChk.checked)
SelectMultiPage.Hd electedValues.value += "," + oChk.value;
else
SelectMultiPage.Hd electedValues.value = SelectMultiPage.Hd electedValues.value.replace("," + oChk.value," quot;);
}
</script>
</HEAD>
< ODY>
<form id=" electMultiPage" runat=" erver" gt;
<a :datagrid id="DataGrid1" HorizontalAlign="Center" AutoGenerateColum ="False" Width="600px"
 AllowPaging="True" runat=" erver" gt;
<AlternatingItemStyle BackColor="#EEEEEE" gt lt;/AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Center" gt lt;/HeaderStyle>
< agerStyle HorizontalAlign="Right" Mode=" umericPage quot; Visible="True" gt lt;/PagerStyle>
<Colum gt;
 <a :TemplateColumn HeaderText="选择" gt;
  <ItemTemplate>
  <i ut type="checkbox" runat=" erver" id="chkSelect" onclick="AddRemoveValues(this)"
   value='<%#DataBinder.Eval(Container.DataItem,"Title")%>'/>
  </ItemTemplate>
 </a :TemplateColum gt;
 <a :TemplateColumn HeaderText="文章标题" gt;
  <ItemTemplate>
  <a :Literal Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>' runat=" erver" ID="TitleShow"/>
  </ItemTemplate>
 </a :TemplateColum gt;
 <a :TemplateColumn HeaderText="发布时间" gt;
  <ItemTemplate>
  <a :Literal Text='<%# DataBinder.Eval(Container.DataItem, "CreateDate").ToString() %>' runat=" erver"/>
  </ItemTemplate>
 </a :TemplateColum gt;
</Colum gt;
</a :datagrid>
<div align=center>
<a :button id=" utton1" runat=" erver" Text="得到所选的值" gt lt;/a :butto gt;
<div id=" tatu quot gt;
<a :label id="Label1" runat=" erver" gt lt;/a :label>
</div>
<I UT id="Hd electedValue quot; type="hidde quot; name="Hd electedValue quot; runat=" erver" gt;
</div>
</form>
</BODY>
</HTML>

SelectMultiPages.a x.cs

using System;
using System.Collectio 
using System.ComponentModel;
using System.Data;
using System.Data.OleD 
using System.Drawing;
using System.We 
using System.Web.Se io tate;
using System.Web.UI;
using System.Web.UI.WebControl 
using System.Web.UI.HtmlControl 

name ace eMeng.Exam
{
/// < ummary>
/// SelectMultiPages 的摘要说明。
/// </summary>
public cla  SelectMultiPages : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.HtmlControls.HtmlI utHidden Hd electedValue 
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.I ostBack)
BindData();
}
private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
BindData();
}

void BindData()
{
OleDbCo ection cn = new OleDbCo ection(" rovider=Microsoft.Jet.OLEDB.4.0;Data Source="
 + HttpContext.Current.Server.Ma ath("a x.md quot;));
OleDbDataAdapter da = new OleDbDataAdapter(" elect Title, CreateDate from Document",cn);
DataSet ds = new DataSet();
da.Fill(ds);
DataGrid1.DataSource= d 
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(Hd electedValues.Value.IndexOf(((Literal)e.Item.Cells[1].FindControl("TitleShow")).Text) >= 0 )
 {
  HtmlI utCheckBox ChkSelected = (HtmlI utCheckBox)(e.Item.Cells[0].FindControl("ChkSelect"));
  ChkSelected.Checked = true;
 }
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
//为了显示的方便进行替换的
Label1.Text = Hd electedValues.Value.Replace(","," lt;li> quot;);
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 A .NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// < ummary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </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程序中创建唯一序号
在ASP.NET中进行文件处理(1)
在ASP.NET+ORACLE添加数据记录并让ID自动增量
在ASP.NET中使用.NET组件
在ASP/ASP.NET 中处理客户端数字证书
 

最新文章

更多

· ASP.NET立即上手教程(12)
· ASP.NET立即上手教程(13)
· ASP.NET立即上手教程(14)
· .NET环境下几种不同的邮...
· Repeater控件分页例子
· 从文本文件读取行信息
· Asp.Net 2.0数据库基本操...
· url传递中文的解决方案
· 如何实现无刷新的Dropdo...
· 将非模态对话框显示为模...

推荐文章

更多

· ASP.NET立即上手教程(12)
· ASP.NET立即上手教程(13)
· ASP.NET立即上手教程(14)
· .NET环境下几种不同的邮...
· Repeater控件分页例子
· 从文本文件读取行信息
· Asp.Net 2.0数据库基本操...
· url传递中文的解决方案
· 如何实现无刷新的Dropdo...
· 将非模态对话框显示为模...

热点文章

更多