效果图如下:
![]()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%
@ Page language="c#" Codebehind="ajaxDataGrid.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.ajaxDataGrid" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>ajaxDataGrid</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<style type="text/css">
.AnJianID {
}{
CURSOR: hand; TEXT-DECORATION: underline
}
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
BODY {
}{
FONT-SIZE: 12px; MARGIN: 0px; COLOR: #000000; LINE-HEIGHT: normal; BACKGROUND-COLOR: #ffffff
}
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
TD {
}{
FONT-SIZE: 12px
}
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
.dg_item {
}{
BACKGROUND: #ffffff; BORDER-COLLAPSE: separate
}
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
.tdbg-dark {
}{
BORDER-RIGHT: #000066 1px solid; BORDER-TOP: #000066 1px solid; BACKGROUND: #316ac5; BORDER-LEFT: #000066 1px solid; BORDER-BOTTOM: #000066 1px solid
}
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
.tdbg {
}{
BACKGROUND: #ffffff; COLOR: black; BORDER-BOTTOM: #000000 1px solid; BORDER-COLLAPSE: separate
}
</style>
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<script language="javascript">![](/Images/dot.gif)
//初始化表格
function Init()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//alert('1');
divDataGrid1.innerHTML=ajaxDataGrid.GetTableOuterHTML().value;
getdata();
}
//得到数据
function getdata()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var ss=ajaxDataGrid.GetDataXML().value;
var aa='<xml id="xmlData">'+ss+'</xml>'; //xml的ID是表格的数据源
//alert(aa);
divDataGrid.innerHTML=aa;
}
//
function InTo(ID)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
window.open("test.aspx?ID="+ID.innerText);
}
//选择所有
function SelectAll (chkVal, idVal)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var frm = document.forms[0];
for (i=0; i<frm.length; i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (idVal.indexOf ('chkAll') != -1)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(chkVal == true)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
frm.elements[i].checked = true;
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
frm.elements[i].checked = false;
}
![](/Images/OutliningIndicators/InBlock.gif)
}
else if (idVal.indexOf ('mychk') != -1)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
if(frm.elements[i].checked == false)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
frm.elements[1].checked = false;
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
}
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//删除数据
function del()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var tmp=document.getElementsByName("mychk");
var strId = new String();
var n = 0;
for(var i=0; i<tmp.length; i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(tmp[i].checked)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
strId += tmp[i].parentElement.parentElement.childNodes(1).innerText + ",";
n++;
}
}
var s=ajaxDataGrid.DelData(strId).value;
if(s!="0")
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
alert("删除成功");
getdata(); //重新绑定数据
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
alert("删除失败");
}
}
//编辑数据,转到另一页面
function editItemToURL(strtd)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//alert(strtd.childNodes(2).innerText);
//将第一列的值传到另一页面
window.open("test.aspx?ID="+strtd.childNodes(2).innerText)
}
//编辑数据,得到ID在当前编辑
function editItem(strtd)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var strId;
strId=strtd.parentElement.parentElement.childNodes(1).innerText
alert(strId);
}
//直接删除数据
function deleteItem(strtd)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var istrue=window.confirm('确定要删除此记录吗?');
if(istrue)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var strId;
strId=strtd.parentElement.parentElement.childNodes(1).innerText
var result=ajaxDataGrid.DeleteData(strId).value;
//alert(result);
if(result=="1")
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
getdata();
//alert('成功删除'!);
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
alert('删除失败!');
}
}
}
</script>
</HEAD>
<body onload="Init()" MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 88px; POSITION: absolute; TOP: 24px" cellSpacing="1"
cellPadding="1" width="80%" border="1">
<TR>
<TD><INPUT onclick="getdata()" type="button" value="得到数据"> <INPUT onclick="document.all.DataGrid1.previousPage()" type="button" value="前一页">
<INPUT onclick="document.all.DataGrid1.nextPage()" type="button" value="后一页"><INPUT onclick="del()" type="button" value="删 除"></TD>
</TR>
<TR>
<TD>
<div id="divDataGrid"></div>
<div id="divDataGrid1"><FONT face="宋体"></FONT></div>
</TD>
</TR>
<TR>
<TD>
<div id="drpDIV"></div>
</TD>
</TR>
</TABLE>
</form>
</body>
</HTML>
![](/Images/OutliningIndicators/None.gif)
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;
using System.Text;
using System.IO;
using System.Data.SqlClient;
namespace WebApplication1
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// ajaxDataGrid 的摘要说明。
/// </summary>
public class ajaxDataGrid : System.Web.UI.Page
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
protected System.Web.UI.HtmlControls.HtmlSelect drpS;
protected System.Web.UI.HtmlControls.HtmlSelect drpC;
protected System.Web.UI.HtmlControls.HtmlSelect drp_AS;
protected System.Web.UI.HtmlControls.HtmlSelect drp_AC;
protected System.Web.UI.WebControls.TextBox TextBox1;
static string strTableName="";
private void Page_Load(object sender, System.EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(ajaxDataGrid));
![](/Images/OutliningIndicators/InBlock.gif)
Session["strTableName"]=Request.QueryString["TableName"].ToString();
strTableName=Session["strTableName"].ToString();
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.Load += new System.EventHandler(this.Page_Load);
![](/Images/OutliningIndicators/InBlock.gif)
}
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
//得到表TableName的所得数据,以XML字符串返回
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public string GetTableOuterHTML()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
// string strcon="data source=sundun3;uid=lsa_ga;pwd=sundun";
// OracleConnection conn=new OracleConnection(strcon);
![](/Images/OutliningIndicators/InBlock.gif)
string strcon="server=(local);database=database;uid=sa;pwd=";
SqlConnection conn=new SqlConnection(strcon);
![](/Images/OutliningIndicators/InBlock.gif)
string strSelect=string.Format("select bianhao,xingming,xingbie from {0}",Session["strTableName"].ToString());
// OracleDataAdapter da=new OracleDataAdapter(strSelect,conn);
SqlDataAdapter da=new SqlDataAdapter(strSelect,conn);
DataSet ds=new DataSet();
da.Fill(ds);
![](/Images/OutliningIndicators/InBlock.gif)
return GetTableOuterHTML(ds.Tables[0].DefaultView);
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//由一个数据视图得到该表的表头及所有数据,以XML格式的表字符串返回
private string GetTableOuterHTML(DataView dv)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
StringBuilder ret = new StringBuilder();
ret.Append("<table id='DataGrid1' dataSrc='#xmlData' cellspacing=1 cellpadding=4 border=1 dataPageSize=10 width=90%><THEAD>" );
ret.Append("<tr>");
ret.Append("<td width='50'> <input type='checkbox' id='chkAll' onclick='SelectAll(this.checked, this.id)'></td> ");
//标题
foreach(System.Data.DataColumn dc in dv.Table.Columns )
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(dc.Ordinal==1) //该列隐藏
//ret.Append("<td style=\"DISPLAY: none\">"+dc.ColumnName+"</td>"); //注意,这里要是定义了某一列隐藏,在表格里也要相应的隐藏
ret.Append("<td >"+dc.ColumnName+"</td>");
![](/Images/OutliningIndicators/InBlock.gif)
else
ret.Append("<td>"+dc.ColumnName+"</td>");
}
ret.Append("</THEAD></tr>");
//这时是视图中筛选后的数据
ret.Append(GetRowOuterHTML(dv));
ret.Append("</table>");
return ret.ToString ();
}
![](/Images/OutliningIndicators/InBlock.gif)
//将字段绑定到表格里
private string GetRowOuterHTML(DataView dv)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
StringBuilder sbtable=new StringBuilder();
![](/Images/OutliningIndicators/InBlock.gif)
sbtable.Append("<tr onmouseover=\"this.className='tdbg-dark';\" onmouseout=\"this.className='tdbg';\" ondblclick=\"editItemToURL(this)\">");
sbtable.Append("<td width='5'> <input type='checkbox' id='mychk'></td> ");
![](/Images/OutliningIndicators/InBlock.gif)
foreach(System.Data.DataColumn dc in dv.Table.Columns)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(dc.Ordinal==1) //将第二列设为超连接,CHECKBOX不算
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
sbtable.Append("<td ><span dataFld="+dc.ColumnName+" title='查看详细信息' class=\"AnJianID\" OnClick='InTo(this)' class=\"dg_item\"");
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
sbtable.Append("<td ><span dataFld="+dc.ColumnName+" class=\"dg_item\"");
}
//sbtable.Append(tem);
sbtable.Append("></span></td>");
}
![](/Images/OutliningIndicators/InBlock.gif)
sbtable.Append("<td width='5'> <input type='button' value='编辑' onClick=\"editItem(this)\"></td> ");
sbtable.Append("<td width='5'> <input type='button' value='删除' onClick=\"deleteItem(this)\"></td> ");
sbtable.Append("</tr>");
![](/Images/OutliningIndicators/InBlock.gif)
return sbtable.ToString();
}
![](/Images/OutliningIndicators/InBlock.gif)
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public string GetDataXML()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
// string strcon="data source=sundun3;uid=lsa_ga;pwd=sundun";
// OracleConnection conn=new OracleConnection(strcon);
![](/Images/OutliningIndicators/InBlock.gif)
string strcon="server=(local);database=database;uid=sa;pwd=";
SqlConnection conn=new SqlConnection(strcon);
![](/Images/OutliningIndicators/InBlock.gif)
// string strSelect=string.Format("select * from {0} where rownum<20 ",Session["strTableName"].ToString());
string strSelect=string.Format("select bianhao,xingming,xingbie from {0} ",Session["strTableName"].ToString());
// OracleDataAdapter da=new OracleDataAdapter(strSelect,conn);
//conn.Open();
SqlDataAdapter da=new SqlDataAdapter(strSelect,conn);
DataSet ds=new DataSet();
da.Fill(ds);
![](/Images/OutliningIndicators/InBlock.gif)
string text = "";
![](/Images/OutliningIndicators/InBlock.gif)
using(MemoryStream ms = new MemoryStream())
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
ds.WriteXml(ms);
![](/Images/OutliningIndicators/InBlock.gif)
ms.Position = 0;
![](/Images/OutliningIndicators/InBlock.gif)
StreamReader sr = new StreamReader(ms);
![](/Images/OutliningIndicators/InBlock.gif)
text = sr.ReadToEnd();
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
return text;
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
删除数据,循环删除#region 删除数据,循环删除
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 删除数据
/// </summary>
/// <returns></returns>
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)] //可以使用session
public string DelData(string str)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
int i=0;
![](/Images/OutliningIndicators/InBlock.gif)
// string strcon="data source=sundun3;uid=lsa_ga;pwd=sundun";
// OracleConnection conn=new OracleConnection(strcon);
//
// conn.Open();
// OracleCommand com;
![](/Images/OutliningIndicators/InBlock.gif)
string strcon="server=(local);database=database;uid=sa;pwd=";
SqlConnection conn=new SqlConnection(strcon);
conn.Open();
SqlCommand com;
![](/Images/OutliningIndicators/InBlock.gif)
string strA=str.TrimEnd(','); //去掉末尾的,号
ArrayList ar=arrSplit(strA);
![](/Images/OutliningIndicators/InBlock.gif)
if(ar.Count>0)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
for(int m=0;m<ar.Count;m++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
string strDelete=string.Format("delete {0} where iidd ='{1}'",Session["strTableName"].ToString(),ar[m].ToString());
com=new SqlCommand(strDelete,conn);
i=com.ExecuteNonQuery();
}
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
return i.ToString();
}
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
//将字符串分割成数组#region//将字符串分割成数组
public static ArrayList arrSplit(string strSplit)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
ArrayList arrList = new ArrayList();
int i = 0;
int j = 0;
int l = strSplit.Length;
int lenStr = 1;
int k = strSplit.LastIndexOf(',');
if(strSplit.IndexOf(',') ==0)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
arrList.Add("");
}
if(k == -1)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
arrList.Add(strSplit);
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
while(j < k && i < l + lenStr)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
j = strSplit.IndexOf(',',i);
arrList.Add(strSplit.Substring(i,j-i));
i = j + lenStr;
}
arrList.Add(strSplit.Substring(k + lenStr));
}
return arrList;
![](/Images/OutliningIndicators/InBlock.gif)
}
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
删除数据,一行一行的删除#region 删除数据,一行一行的删除
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public string DeleteData(string strID)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
string strcon="server=(local);database=lsa_anqiu;uid=sa;pwd=sundun";
SqlConnection conn=new SqlConnection(strcon);
conn.Open();
string strdelete=string.Format("delete {0} where bianhao='{1}'",Session["strTableName"].ToString(),strID);
SqlCommand com=new SqlCommand(strdelete,conn);
com.ExecuteNonQuery();
conn.Close();
return "1";
}
catch
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return "0";
}
![](/Images/OutliningIndicators/InBlock.gif)
}
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
}
}
![](/Images/OutliningIndicators/None.gif)
posted on
2006-12-06 15:03
huazi4995
阅读(
398)
评论()
编辑
收藏
举报