上次的给出了演示效果,这次就把代码一些细节说明一下.
首先说明下这个例子用到的结构和基类:
1、具有dataGrid的页面继承了ListDataPage这个类,而ListDataPage类又继承了PageBase这个页面类。
其中PageBase你可以写一些页面上最基本的属性,方法等。
基本的代码如下:
         
 /********************************************************************
/********************************************************************
 created:    2007/06/08
    created:    2007/06/08
 filename:     \App_Code\PageBase.cs
    filename:     \App_Code\PageBase.cs
 file path:    \App_Code
    file path:    \App_Code
 file base:    PageBase
    file base:    PageBase
 author:        chengang
    author:        chengang
 
    
 information:    页面的基类
    information:    页面的基类


 *********************************************************************/
*********************************************************************/


 using System;
using System;
 using System.Web;
using System.Web;
 using System.Data;
using System.Data;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Text;
using System.Text;
 using System.Configuration;
using System.Configuration;
 using System.Drawing;
using System.Drawing;
 using System.Data.SqlClient;
using System.Data.SqlClient;
 using EMEFRAME.UIControl;
using EMEFRAME.UIControl;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 namespace EMEFRAME
namespace EMEFRAME
 {
{
 /// <summary>
    /// <summary>
 /// 页面的基类
    /// 页面的基类
 /// </summary>
    /// </summary>
 public class PageBase : System.Web.UI.Page
    public class PageBase : System.Web.UI.Page
 {
    {
 私有变量
        私有变量

 protected HtmlLink css;
        protected HtmlLink css;
 public PageBase()
        public PageBase() 
 {
        {
 //记录页面的开始执行时间
            //记录页面的开始执行时间


 _StartTime = DateTime.Now;
            _StartTime = DateTime.Now;
 }
        }

 属性
        属性


 /// <summary>
        /// <summary>
 /// 根据条件判断返回页面执行时间
        /// 根据条件判断返回页面执行时间
 /// </summary>
        /// </summary>
 /// <returns></returns>
        /// <returns></returns>
 public string PageLoadTime()
        public string PageLoadTime()
 {
        {
 TimeSpan usedTime = DateTime.Now - this._StartTime;
            TimeSpan usedTime = DateTime.Now - this._StartTime;
 return ("页面执行时间:" + usedTime.TotalSeconds + "秒");
            return ("页面执行时间:" + usedTime.TotalSeconds + "秒");
 }
        }


 重载方法
        重载方法

 常用页面方法
        常用页面方法

 /******************************************************************/
        /******************************************************************/
 //系统权限操作方法
        //系统权限操作方法
 //要求每个页面PageLoad中进行调用并且传进相应的MenuCode
        //要求每个页面PageLoad中进行调用并且传进相应的MenuCode 
 //作者:陈刚 时间:2007-6-26
        //作者:陈刚 时间:2007-6-26
 /******************************************************************/
        /******************************************************************/

 取得菜单权限(查看arr[0]、增加arr[1],删除arr[2]、修改arr[3],arr[4]审核 大小为5列:arr[0]==true表示其有查看的权限
        取得菜单权限(查看arr[0]、增加arr[1],删除arr[2]、修改arr[3],arr[4]审核 大小为5列:arr[0]==true表示其有查看的权限

 设置页面显示\隐藏权限按钮的方法这里要求所有操作按钮和本方法中同名,否则是无法找到的
        设置页面显示\隐藏权限按钮的方法这里要求所有操作按钮和本方法中同名,否则是无法找到的
 }
    }

 }
}
 里面有alert这个可以基于ajax页面中实现js中alert功能,有权限控制功能,这些可以结合自己的项目写一些常用方法,还有css页面加载和常用js脚本加载等公用方法。
   里面有alert这个可以基于ajax页面中实现js中alert功能,有权限控制功能,这些可以结合自己的项目写一些常用方法,还有css页面加载和常用js脚本加载等公用方法。
另外它的子类ListDataPage(针对有DataGrid的页面)的代码如下:
 /********************************************************************
/********************************************************************
 created:    2007/01/17
    created:    2007/01/17
 filename:     \App_Code\ListDataPage.cs
    filename:     \App_Code\ListDataPage.cs
 file path:    \App_Code
    file path:    \App_Code
 file base:    ListDataPage
    file base:    ListDataPage
 author:        chengang
    author:        chengang
 
    
 information:    数据列表页的基类
    information:    数据列表页的基类
 *********************************************************************/
*********************************************************************/


 using System;
using System;
 using System.Web;
using System.Web;
 using System.Data;
using System.Data;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Text;
using System.Text;
 using System.Configuration;
using System.Configuration;
 using System.Drawing;
using System.Drawing;
 using System.Data.SqlClient;
using System.Data.SqlClient;
 using EMEFRAME.UIControl;
using EMEFRAME.UIControl;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 namespace EMEFRAME
namespace EMEFRAME
 {
{
 /// <summary>
    /// <summary>
 /// 数据列表页的基类
    /// 数据列表页的基类
 /// </summary>
    /// </summary>
 public class ListDataPage : PageBase
    public class ListDataPage : PageBase
 {
    {
 public const int maxSortCount = 1;
        public const int maxSortCount = 1;
 AspNetPager objPager;
        AspNetPager objPager;
 DataGrid objDataGrid;
        DataGrid objDataGrid;
 public ListDataPage() { }
        public ListDataPage() { }
 public void InitAspNetPager(AspNetPager po_Pager)
        public void InitAspNetPager(AspNetPager po_Pager)
 {
        {
 //动态设置用户自定义文本内容
            //动态设置用户自定义文本内容
 //分页数量
            //分页数量
 po_Pager.UrlPaging = false;
            po_Pager.UrlPaging = false;
 po_Pager.TextAfterSelectBox = "<font color='#0066cc'>条</font>";
            po_Pager.TextAfterSelectBox = "<font color='#0066cc'>条</font>";
 po_Pager.TextBeforeSelectBox = "<font color='#0066cc'>每页</font>";
            po_Pager.TextBeforeSelectBox = "<font color='#0066cc'>每页</font>";
 po_Pager.PageSize = 20;
            po_Pager.PageSize = 20;
 //显示几个页数
            //显示几个页数
 po_Pager.NumericButtonCount = 10;
            po_Pager.NumericButtonCount = 10;
 //是否一定显示分页控件
            //是否一定显示分页控件
 po_Pager.AlwaysShow = true;
            po_Pager.AlwaysShow = true;
 //自定义信息存放位置
            //自定义信息存放位置
 po_Pager.ShowCustomInfoSection = EMEFRAME.UIControl.ShowCustomInfoSection.Left;
            po_Pager.ShowCustomInfoSection = EMEFRAME.UIControl.ShowCustomInfoSection.Left;
 //索引文本框显示方式
            //索引文本框显示方式
 po_Pager.ShowInputBox = EMEFRAME.UIControl.ShowInputBox.Always;
            po_Pager.ShowInputBox = EMEFRAME.UIControl.ShowInputBox.Always;
 po_Pager.ShowSelectBox = EMEFRAME.UIControl.ShowInputBox.Always;
            po_Pager.ShowSelectBox = EMEFRAME.UIControl.ShowInputBox.Always;
 //分页信息存放位置
            //分页信息存放位置
 po_Pager.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Right;
            po_Pager.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Right;
 //设置按钮的属性
            //设置按钮的属性
 po_Pager.SubmitButtonClass = "ButtonCss";
            po_Pager.SubmitButtonClass = "ButtonCss";
 po_Pager.SubmitButtonOnMouseOut = "ButtonCss";
            po_Pager.SubmitButtonOnMouseOut = "ButtonCss";
 po_Pager.SubmitButtonOnMouseOver = "ButtonCss_Over";
            po_Pager.SubmitButtonOnMouseOver = "ButtonCss_Over";
 po_Pager.SubmitButtonText = "Go";
            po_Pager.SubmitButtonText = "Go";

 //设置按钮的属性
            //设置按钮的属性
 po_Pager.SelectBoxClass = "ButtonCss";
            po_Pager.SelectBoxClass = "ButtonCss";
 po_Pager.SelectBoxOnMouseOut = "ButtonCss";
            po_Pager.SelectBoxOnMouseOut = "ButtonCss";
 po_Pager.SelectBoxOnMouseOver = "ButtonCss_Over";
            po_Pager.SelectBoxOnMouseOver = "ButtonCss_Over";
 }
        }
 页面的排序表达式 页面的排序表达式
        页面的排序表达式 页面的排序表达式

 分面控件排序 DataGridSortData 分面控件排序 DataGridSortData
        分面控件排序 DataGridSortData 分面控件排序 DataGridSortData
 public void PagerBindDate()
        public void PagerBindDate()
 {
        {

 objPager.CustomInfoHTML = "<font color='#0066cc'>页码</font> <font color=\"red\"><b>" + objPager.CurrentPageIndex + "</b></font> <font color='#0066cc'>of</font>  " + objPager.PageCount;
            objPager.CustomInfoHTML = "<font color='#0066cc'>页码</font> <font color=\"red\"><b>" + objPager.CurrentPageIndex + "</b></font> <font color='#0066cc'>of</font>  " + objPager.PageCount;
 if (objPager.RecordCount != 0)
            if (objPager.RecordCount != 0)
 {
            {
 objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> " + objPager.StartRecordIndex + "-" + objPager.EndRecordIndex;
                objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> " + objPager.StartRecordIndex + "-" + objPager.EndRecordIndex;
 }
            }
 else
            else
 {
            {
 objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> 0-0";
                objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> 0-0";
 }
            }
 objPager.CustomInfoHTML += "  <font color='#0066cc'>总记录</font> " + objPager.RecordCount;
            objPager.CustomInfoHTML += "  <font color='#0066cc'>总记录</font> " + objPager.RecordCount;
 EMEFRAME.LoadCss.SetDataGridItem(objDataGrid);
            EMEFRAME.LoadCss.SetDataGridItem(objDataGrid);
 }
        }
 重载方法
        重载方法
 }
    }

 }
}
 
其中InitAspNetPager(AspNetPager po_Pager)这个方法是初始化分页控件的属性,如PageSize页面初始记录数等,排序方面我们把它放到SortDirection这个属性中,其实也就是一个ViewState保存其状态。DataGridSortData这个方法是在触发排序事件的时候加载这个方法,改变其DataGrid的升降标志。PagerBindDate这个方法是在页面改变的时候改变分页控件的自定义文本区的显示,达到同步页面记录数的显示信息。(可以自己需要修改)
其他重载OnPreRender、OnInit方法中,我加载了subModal.css样式,和submodalsource.js脚本,是因为这里我用了http://gabrito.com/files/subModal/这个网站上提供的代码替换弹出框。其中我修改了一个地方, if (callReturnFunc==true)//主窗口上建立一个回调方法
     if (callReturnFunc==true)//主窗口上建立一个回调方法 
 {
    {
 document.getElementById("TextBox1").value="reload";
        document.getElementById("TextBox1").value="reload";
 __doPostBack("TextBox1","")
        __doPostBack("TextBox1","")
 }
我在页面上加入一个TextBox1,作为是否回发标志。这个后面会更清楚。
    }
我在页面上加入一个TextBox1,作为是否回发标志。这个后面会更清楚。
2、页面上面基本上用到的控件有:ScriptManager,UpdatePanel,UpdateProgress,DataGrid,AspNetPager1,TextBox1(刚才提到是否回发标志),txt_delid(删除回复标志),btnAddNew(弹出新增页面)。其中UpdatePanel定义了3个触发器AsyncPostBackTrigger,第一个是AspNetPager1分页控件了,监听事件PageChanged,第2个就是当新增页面关闭(增加成功情况)时要对父页面(当前这个页面)进行回发,用到的是TextBox1,其事件TextChanged,最后一个就是删除事件用到的txt_delid的TextChanged,因为我这个删除按钮(其实是张图片而已)放在DataGrid中的模板中,动态绑定它的onclick 事件,回发txt_delid的改变值,好让服务端删除记录后刷新局部。
好了,页面代码如下:
 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax_DataGrid.aspx.cs" Inherits="Test_Ajax_DataGrid" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax_DataGrid.aspx.cs" Inherits="Test_Ajax_DataGrid" %>

 <%@ Register Assembly="EMEFRAME" Namespace="EMEFRAME.UIControl" TagPrefix="cc1" %>
<%@ Register Assembly="EMEFRAME" Namespace="EMEFRAME.UIControl" TagPrefix="cc1" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head id="Head1" runat="server">
<head id="Head1" runat="server">
 <title></title>
    <title></title>
 <script type="text/javascript">
    <script type="text/javascript">
 function _del(id)
     function _del(id)
 {
     {
 document.getElementById("txt_delid").innerText = id;
        document.getElementById("txt_delid").innerText = id;
 __doPostBack("txt_delid","");
        __doPostBack("txt_delid","");
 }
     }
 </script>
    </script>

 </head>
</head>
 <body>
<body>
 <form id="form1" runat="server">
    <form id="form1" runat="server">
 <asp:ScriptManager runat="server" ID="sm">
        <asp:ScriptManager runat="server" ID="sm">
 </asp:ScriptManager>
        </asp:ScriptManager>
 <table width="100%">
        <table width="100%">
 <tr>
            <tr>
 <td align="right" width="70%">
                <td align="right" width="70%">
  <input type="button" id="btnAddNew" value="新 增" runat="server" onclick="initPopUp('新建');showPopWin('Test_Add.aspx', 400, 200)" />
                     <input type="button" id="btnAddNew" value="新 增" runat="server" onclick="initPopUp('新建');showPopWin('Test_Add.aspx', 400, 200)" />
 </td>
                </td>
 </tr>
            </tr>
 </table>
        </table>
 <div id="SearchDiv" style="display: none;">
        <div id="SearchDiv" style="display: none;">
 </div>
        </div>
 
        
 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
 <ContentTemplate>
                <ContentTemplate>
 <asp:DataGrid ID="DataGridList" runat="server" Width="100%" AutoGenerateColumns="False"
                    <asp:DataGrid ID="DataGridList" runat="server" Width="100%" AutoGenerateColumns="False"
 PageSize="20" BorderWidth="1px" BorderColor="#79BCEF" AllowSorting="True" OnSortCommand="DataGridList_SortCommand"
                        PageSize="20" BorderWidth="1px" BorderColor="#79BCEF" AllowSorting="True" OnSortCommand="DataGridList_SortCommand"
 OnItemDataBound="DataGridList_ItemDataBound">
                        OnItemDataBound="DataGridList_ItemDataBound">
 <ItemStyle CssClass="dgItem"></ItemStyle>
                        <ItemStyle CssClass="dgItem"></ItemStyle>
 <HeaderStyle CssClass="dgTitle"></HeaderStyle>
                        <HeaderStyle CssClass="dgTitle"></HeaderStyle>
 <Columns>
                        <Columns>
 <asp:BoundColumn DataField="id" HeaderText="id" SortExpression="id"></asp:BoundColumn>
                            <asp:BoundColumn DataField="id" HeaderText="id" SortExpression="id"></asp:BoundColumn>
 <asp:BoundColumn DataField="vTest_Name" SortExpression="vTest_Name" HeaderText="名称"></asp:BoundColumn>
                            <asp:BoundColumn DataField="vTest_Name" SortExpression="vTest_Name" HeaderText="名称"></asp:BoundColumn>
 <asp:BoundColumn DataField="VTest_Creater" HeaderText="创建人" SortExpression="VTest_Creater">
                            <asp:BoundColumn DataField="VTest_Creater" HeaderText="创建人" SortExpression="VTest_Creater">
 </asp:BoundColumn>
                            </asp:BoundColumn>
 <asp:BoundColumn DataField="dTest_CreateDate" SortExpression="dTest_CreateDate" HeaderText="创建时间"
                            <asp:BoundColumn DataField="dTest_CreateDate" SortExpression="dTest_CreateDate" HeaderText="创建时间"
 DataFormatString="{0:d}"></asp:BoundColumn>
                                DataFormatString="{0:d}"></asp:BoundColumn>
 <asp:TemplateColumn HeaderText="修改">
                            <asp:TemplateColumn HeaderText="修改">
 <HeaderStyle Width="70px"></HeaderStyle>
                                <HeaderStyle Width="70px"></HeaderStyle>
 <ItemTemplate>
                                <ItemTemplate>
 <img src="../Images/EditBtn.gif" />
                                    <img src="../Images/EditBtn.gif" />
 </ItemTemplate>
                                </ItemTemplate>
 </asp:TemplateColumn>
                            </asp:TemplateColumn>
 <asp:TemplateColumn HeaderText="删除">
                            <asp:TemplateColumn HeaderText="删除">
 <HeaderStyle Width="50px"></HeaderStyle>
                                <HeaderStyle Width="50px"></HeaderStyle>
 <ItemTemplate>
                                <ItemTemplate>
 <img src="../Images/DeleteBtn.gif" />
                                    <img src="../Images/DeleteBtn.gif" />
 </ItemTemplate>
                                </ItemTemplate>
 <EditItemTemplate>
                                <EditItemTemplate>
 <font face="宋体"></font>
                                    <font face="宋体"></font>
 </EditItemTemplate>
                                </EditItemTemplate>
 </asp:TemplateColumn>
                            </asp:TemplateColumn>
 </Columns>
                        </Columns>
 <PagerStyle Visible="False" NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
                        <PagerStyle Visible="False" NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
 </asp:DataGrid>
                    </asp:DataGrid>
 <cc1:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged"
                    <cc1:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged"
 PageSize="10">
                        PageSize="10">
 </cc1:AspNetPager>
                    </cc1:AspNetPager>
 <div id="popupMask">
                    <div id="popupMask">
 </div>
                    </div>
 </ContentTemplate>
                </ContentTemplate>
 <Triggers>
                <Triggers>
 <asp:AsyncPostBackTrigger ControlID="AspNetPager1" EventName="PageChanged" />
                    <asp:AsyncPostBackTrigger ControlID="AspNetPager1" EventName="PageChanged" />
 <asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
                    <asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
 <asp:AsyncPostBackTrigger ControlID="txt_delid" EventName="TextChanged" />
                    <asp:AsyncPostBackTrigger ControlID="txt_delid" EventName="TextChanged" />
 </Triggers>
                </Triggers>
 </asp:UpdatePanel>
            </asp:UpdatePanel>
 <asp:Label ID="lblWhere" runat="server" Visible="False"></asp:Label>
        <asp:Label ID="lblWhere" runat="server" Visible="False"></asp:Label>
 <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" Style="visibility: hidden"></asp:TextBox>
        <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" Style="visibility: hidden"></asp:TextBox>
 <asp:UpdateProgress ID="uprog" runat="server" DisplayAfter="20">
        <asp:UpdateProgress ID="uprog" runat="server" DisplayAfter="20">
 <ProgressTemplate>
            <ProgressTemplate>
 <div style="background-color: #E2F2FF; color: Black; font-size: 11pt; left: 266px;
                <div style="background-color: #E2F2FF; color: Black; font-size: 11pt; left: 266px;
 position: absolute; top: 200px; z-index: 3; border: solid 1px #8DD3FF; width: 263px;
                    position: absolute; top: 200px; z-index: 3; border: solid 1px #8DD3FF; width: 263px;
 height: 80px; text-align: center;">
                    height: 80px; text-align: center;">
 <center>
                    <center>
 <br />
                            <br />
 <img src="../Images/blu.gif" alt=" " />
                            <img src="../Images/blu.gif" alt=" " />
 <br />
                            <br />
 数据更新中,请稍候
                            数据更新中,请稍候
 <br />
                            <br />
 </center>
                    </center>
 </div>
                </div>
 </ProgressTemplate>
            </ProgressTemplate>
 </asp:UpdateProgress>
        </asp:UpdateProgress>
 <asp:TextBox ID="txt_delid" runat="server" OnTextChanged="txt_delid_TextChanged"
        <asp:TextBox ID="txt_delid" runat="server" OnTextChanged="txt_delid_TextChanged"
 Style="visibility: hidden"></asp:TextBox>
            Style="visibility: hidden"></asp:TextBox>
 </form>
    </form>
 </body>
</body>
 </html>
</html>
 
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Configuration;
using System.Configuration;
 using System.Collections;
using System.Collections;
 using System.Web;
using System.Web;
 using System.Web.Security;
using System.Web.Security;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 using _91dos.Components.BusApp;
using _91dos.Components.BusApp;

 public partial class Test_Ajax_DataGrid : EMEFRAME.ListDataPage
public partial class Test_Ajax_DataGrid : EMEFRAME.ListDataPage
 {
{
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
 {
    {
 if (!Page.IsPostBack)
        if (!Page.IsPostBack)
 {
        {
 //页面权限控制
            //页面权限控制
 //MenuCode = "44";
            //MenuCode = "44";
 //ShowHiddenControl();
            //ShowHiddenControl();

 /***********************************************************************************
            /***********************************************************************************    
 初始化排序字段
             初始化排序字段
 ***********************************************************************************/
            ***********************************************************************************/
 if ((string)ViewState["SortExpression"] == null || (string)ViewState["SortExpression"] == "")
            if ((string)ViewState["SortExpression"] == null || (string)ViewState["SortExpression"] == "")
 {
            {
 ViewState["SortExpression"] = "dTest_CreateDate";        //默认排序字段
                ViewState["SortExpression"] = "dTest_CreateDate";        //默认排序字段
 ViewState["SortDirection"] = false;
                ViewState["SortDirection"] = false;
 }
            }
 /***********************************************************************************
            /***********************************************************************************    
 绑定DataGrid数据
            绑定DataGrid数据 
 **********************************************************************************/
            **********************************************************************************/
 DataGrid_bind();
            DataGrid_bind();
 }
        }
 }
    }
 //表格数据绑定
    //表格数据绑定
 private void DataGrid_bind()
    private void DataGrid_bind()
 {
    {
 int RecordCount;
        int RecordCount;
 DataTable dTable = _91dos_TestApp.Get_91dos_TestPage(AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, lblWhere.Text, Convert.ToBoolean(ViewState["SortDirection"]), ViewState["SortExpression"].ToString(), out RecordCount);
        DataTable dTable = _91dos_TestApp.Get_91dos_TestPage(AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, lblWhere.Text, Convert.ToBoolean(ViewState["SortDirection"]), ViewState["SortExpression"].ToString(), out RecordCount);
 AspNetPager1.RecordCount = RecordCount;
        AspNetPager1.RecordCount = RecordCount;
 DataGridList.DataSource = dTable;
        DataGridList.DataSource = dTable;
 DataGridList.DataBind();
        DataGridList.DataBind();
 PagerBindDate();
        PagerBindDate();
 }
    }
 protected void DataGridList_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    protected void DataGridList_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
 {
    {
 this.DataGridSortData(e);
        this.DataGridSortData(e);
 DataGrid_bind();
        DataGrid_bind();
 }
    }
 //分页事件
    //分页事件
 protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
 {
    {
 DataGrid_bind();
        DataGrid_bind();
 }
    }
 //页面回调刷新
    //页面回调刷新
 protected void TextBox1_TextChanged(object sender, EventArgs e)
    protected void TextBox1_TextChanged(object sender, EventArgs e)
 {
    {
 DataGrid_bind();
        DataGrid_bind();
 TextBox1.Text = "";
        TextBox1.Text = "";
 }
    }
 protected void DataGridList_ItemDataBound(object sender, DataGridItemEventArgs e)
    protected void DataGridList_ItemDataBound(object sender, DataGridItemEventArgs e)
 {
    {
 if (e.Item.ItemIndex != -1)
        if (e.Item.ItemIndex != -1)
 {
        {
 //if (e.Item.Cells[1].Text.ToUpper().Trim() == "ADMIN")
            //if (e.Item.Cells[1].Text.ToUpper().Trim() == "ADMIN")
 //{
            //{
 //    e.Item.Cells[4].Attributes.Add("onclick", "alert(\"超级管理员不可被修改!\");");
            //    e.Item.Cells[4].Attributes.Add("onclick", "alert(\"超级管理员不可被修改!\");");
 //    e.Item.Cells[5].Attributes.Add("onclick", "alert(\"超级管理员不可被删除!\");");
            //    e.Item.Cells[5].Attributes.Add("onclick", "alert(\"超级管理员不可被删除!\");");
 //}
            //}
 //else
            //else
 //{
            //{
 e.Item.Cells[4].Attributes.Add("onclick", "initPopUp('修改信息');showPopWin('Test_Edit.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)");
            e.Item.Cells[4].Attributes.Add("onclick", "initPopUp('修改信息');showPopWin('Test_Edit.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)");
 e.Item.Cells[5].Attributes.Add("onclick", "if(confirm('是否要永久删除该条记录?')){_del('" + e.Item.Cells[0].Text + "');}");
                e.Item.Cells[5].Attributes.Add("onclick", "if(confirm('是否要永久删除该条记录?')){_del('" + e.Item.Cells[0].Text + "');}");
 //}
            //}
 for (int i = 0; i < 5; i++)
            for (int i = 0; i < 5; i++)
 {
            {
 e.Item.Cells[i].Attributes.Add("ondblclick", "initPopUp('详细信息');showPopWin('Test_Detail.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)");
                e.Item.Cells[i].Attributes.Add("ondblclick", "initPopUp('详细信息');showPopWin('Test_Detail.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)");
 }
            }
 }
        }
 }
    }
 //删除事件
    //删除事件
 protected void txt_delid_TextChanged(object sender, EventArgs e)
    protected void txt_delid_TextChanged(object sender, EventArgs e)
 {
    {
 if (txt_delid.Text != "")
        if (txt_delid.Text != "")
 {
        {
 if (_91dos_TestApp._91dos_TestDelete(txt_delid.Text))
            if (_91dos_TestApp._91dos_TestDelete(txt_delid.Text))
 {
            {
 DataGrid_bind();
                DataGrid_bind();
 txt_delid.Text = "";
                txt_delid.Text = "";
 }
            }
 else
            else
 {
            {
 alert("删除出错!");
                alert("删除出错!");
 }
            }
 }
        }
 }
    }
 }
}
首先说明下这个例子用到的结构和基类:
1、具有dataGrid的页面继承了ListDataPage这个类,而ListDataPage类又继承了PageBase这个页面类。
其中PageBase你可以写一些页面上最基本的属性,方法等。
基本的代码如下:
 /********************************************************************
/******************************************************************** created:    2007/06/08
    created:    2007/06/08 filename:     \App_Code\PageBase.cs
    filename:     \App_Code\PageBase.cs file path:    \App_Code
    file path:    \App_Code file base:    PageBase
    file base:    PageBase author:        chengang
    author:        chengang 
     information:    页面的基类
    information:    页面的基类

 *********************************************************************/
*********************************************************************/

 using System;
using System; using System.Web;
using System.Web; using System.Data;
using System.Data; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Text;
using System.Text; using System.Configuration;
using System.Configuration; using System.Drawing;
using System.Drawing; using System.Data.SqlClient;
using System.Data.SqlClient; using EMEFRAME.UIControl;
using EMEFRAME.UIControl; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 namespace EMEFRAME
namespace EMEFRAME {
{ /// <summary>
    /// <summary> /// 页面的基类
    /// 页面的基类 /// </summary>
    /// </summary> public class PageBase : System.Web.UI.Page
    public class PageBase : System.Web.UI.Page {
    { 私有变量
        私有变量
 protected HtmlLink css;
        protected HtmlLink css; public PageBase()
        public PageBase()  {
        { //记录页面的开始执行时间
            //记录页面的开始执行时间

 _StartTime = DateTime.Now;
            _StartTime = DateTime.Now; }
        }
 属性
        属性

 /// <summary>
        /// <summary> /// 根据条件判断返回页面执行时间
        /// 根据条件判断返回页面执行时间 /// </summary>
        /// </summary> /// <returns></returns>
        /// <returns></returns> public string PageLoadTime()
        public string PageLoadTime() {
        { TimeSpan usedTime = DateTime.Now - this._StartTime;
            TimeSpan usedTime = DateTime.Now - this._StartTime; return ("页面执行时间:" + usedTime.TotalSeconds + "秒");
            return ("页面执行时间:" + usedTime.TotalSeconds + "秒"); }
        }

 重载方法
        重载方法
 常用页面方法
        常用页面方法
 /******************************************************************/
        /******************************************************************/ //系统权限操作方法
        //系统权限操作方法 //要求每个页面PageLoad中进行调用并且传进相应的MenuCode
        //要求每个页面PageLoad中进行调用并且传进相应的MenuCode  //作者:陈刚 时间:2007-6-26
        //作者:陈刚 时间:2007-6-26 /******************************************************************/
        /******************************************************************/
 取得菜单权限(查看arr[0]、增加arr[1],删除arr[2]、修改arr[3],arr[4]审核 大小为5列:arr[0]==true表示其有查看的权限
        取得菜单权限(查看arr[0]、增加arr[1],删除arr[2]、修改arr[3],arr[4]审核 大小为5列:arr[0]==true表示其有查看的权限

 设置页面显示\隐藏权限按钮的方法这里要求所有操作按钮和本方法中同名,否则是无法找到的
        设置页面显示\隐藏权限按钮的方法这里要求所有操作按钮和本方法中同名,否则是无法找到的 }
    }
 }
}
另外它的子类ListDataPage(针对有DataGrid的页面)的代码如下:
 /********************************************************************
/******************************************************************** created:    2007/01/17
    created:    2007/01/17 filename:     \App_Code\ListDataPage.cs
    filename:     \App_Code\ListDataPage.cs file path:    \App_Code
    file path:    \App_Code file base:    ListDataPage
    file base:    ListDataPage author:        chengang
    author:        chengang 
     information:    数据列表页的基类
    information:    数据列表页的基类 *********************************************************************/
*********************************************************************/

 using System;
using System; using System.Web;
using System.Web; using System.Data;
using System.Data; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Text;
using System.Text; using System.Configuration;
using System.Configuration; using System.Drawing;
using System.Drawing; using System.Data.SqlClient;
using System.Data.SqlClient; using EMEFRAME.UIControl;
using EMEFRAME.UIControl; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 namespace EMEFRAME
namespace EMEFRAME {
{ /// <summary>
    /// <summary> /// 数据列表页的基类
    /// 数据列表页的基类 /// </summary>
    /// </summary> public class ListDataPage : PageBase
    public class ListDataPage : PageBase {
    { public const int maxSortCount = 1;
        public const int maxSortCount = 1; AspNetPager objPager;
        AspNetPager objPager; DataGrid objDataGrid;
        DataGrid objDataGrid; public ListDataPage() { }
        public ListDataPage() { } public void InitAspNetPager(AspNetPager po_Pager)
        public void InitAspNetPager(AspNetPager po_Pager) {
        { //动态设置用户自定义文本内容
            //动态设置用户自定义文本内容 //分页数量
            //分页数量 po_Pager.UrlPaging = false;
            po_Pager.UrlPaging = false; po_Pager.TextAfterSelectBox = "<font color='#0066cc'>条</font>";
            po_Pager.TextAfterSelectBox = "<font color='#0066cc'>条</font>"; po_Pager.TextBeforeSelectBox = "<font color='#0066cc'>每页</font>";
            po_Pager.TextBeforeSelectBox = "<font color='#0066cc'>每页</font>"; po_Pager.PageSize = 20;
            po_Pager.PageSize = 20; //显示几个页数
            //显示几个页数 po_Pager.NumericButtonCount = 10;
            po_Pager.NumericButtonCount = 10; //是否一定显示分页控件
            //是否一定显示分页控件 po_Pager.AlwaysShow = true;
            po_Pager.AlwaysShow = true; //自定义信息存放位置
            //自定义信息存放位置 po_Pager.ShowCustomInfoSection = EMEFRAME.UIControl.ShowCustomInfoSection.Left;
            po_Pager.ShowCustomInfoSection = EMEFRAME.UIControl.ShowCustomInfoSection.Left; //索引文本框显示方式
            //索引文本框显示方式 po_Pager.ShowInputBox = EMEFRAME.UIControl.ShowInputBox.Always;
            po_Pager.ShowInputBox = EMEFRAME.UIControl.ShowInputBox.Always; po_Pager.ShowSelectBox = EMEFRAME.UIControl.ShowInputBox.Always;
            po_Pager.ShowSelectBox = EMEFRAME.UIControl.ShowInputBox.Always; //分页信息存放位置
            //分页信息存放位置 po_Pager.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Right;
            po_Pager.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Right; //设置按钮的属性
            //设置按钮的属性 po_Pager.SubmitButtonClass = "ButtonCss";
            po_Pager.SubmitButtonClass = "ButtonCss"; po_Pager.SubmitButtonOnMouseOut = "ButtonCss";
            po_Pager.SubmitButtonOnMouseOut = "ButtonCss"; po_Pager.SubmitButtonOnMouseOver = "ButtonCss_Over";
            po_Pager.SubmitButtonOnMouseOver = "ButtonCss_Over"; po_Pager.SubmitButtonText = "Go";
            po_Pager.SubmitButtonText = "Go";
 //设置按钮的属性
            //设置按钮的属性 po_Pager.SelectBoxClass = "ButtonCss";
            po_Pager.SelectBoxClass = "ButtonCss"; po_Pager.SelectBoxOnMouseOut = "ButtonCss";
            po_Pager.SelectBoxOnMouseOut = "ButtonCss"; po_Pager.SelectBoxOnMouseOver = "ButtonCss_Over";
            po_Pager.SelectBoxOnMouseOver = "ButtonCss_Over"; }
        } 页面的排序表达式 页面的排序表达式
        页面的排序表达式 页面的排序表达式
 分面控件排序 DataGridSortData 分面控件排序 DataGridSortData
        分面控件排序 DataGridSortData 分面控件排序 DataGridSortData public void PagerBindDate()
        public void PagerBindDate() {
        {
 objPager.CustomInfoHTML = "<font color='#0066cc'>页码</font> <font color=\"red\"><b>" + objPager.CurrentPageIndex + "</b></font> <font color='#0066cc'>of</font>  " + objPager.PageCount;
            objPager.CustomInfoHTML = "<font color='#0066cc'>页码</font> <font color=\"red\"><b>" + objPager.CurrentPageIndex + "</b></font> <font color='#0066cc'>of</font>  " + objPager.PageCount; if (objPager.RecordCount != 0)
            if (objPager.RecordCount != 0) {
            { objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> " + objPager.StartRecordIndex + "-" + objPager.EndRecordIndex;
                objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> " + objPager.StartRecordIndex + "-" + objPager.EndRecordIndex; }
            } else
            else {
            { objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> 0-0";
                objPager.CustomInfoHTML += "  <font color='#0066cc'>当页记录</font> 0-0"; }
            } objPager.CustomInfoHTML += "  <font color='#0066cc'>总记录</font> " + objPager.RecordCount;
            objPager.CustomInfoHTML += "  <font color='#0066cc'>总记录</font> " + objPager.RecordCount; EMEFRAME.LoadCss.SetDataGridItem(objDataGrid);
            EMEFRAME.LoadCss.SetDataGridItem(objDataGrid); }
        } 重载方法
        重载方法 }
    }
 }
}
其中InitAspNetPager(AspNetPager po_Pager)这个方法是初始化分页控件的属性,如PageSize页面初始记录数等,排序方面我们把它放到SortDirection这个属性中,其实也就是一个ViewState保存其状态。DataGridSortData这个方法是在触发排序事件的时候加载这个方法,改变其DataGrid的升降标志。PagerBindDate这个方法是在页面改变的时候改变分页控件的自定义文本区的显示,达到同步页面记录数的显示信息。(可以自己需要修改)
其他重载OnPreRender、OnInit方法中,我加载了subModal.css样式,和submodalsource.js脚本,是因为这里我用了http://gabrito.com/files/subModal/这个网站上提供的代码替换弹出框。其中我修改了一个地方,
 if (callReturnFunc==true)//主窗口上建立一个回调方法
     if (callReturnFunc==true)//主窗口上建立一个回调方法  {
    { document.getElementById("TextBox1").value="reload";
        document.getElementById("TextBox1").value="reload"; __doPostBack("TextBox1","")
        __doPostBack("TextBox1","") }
    }2、页面上面基本上用到的控件有:ScriptManager,UpdatePanel,UpdateProgress,DataGrid,AspNetPager1,TextBox1(刚才提到是否回发标志),txt_delid(删除回复标志),btnAddNew(弹出新增页面)。其中UpdatePanel定义了3个触发器AsyncPostBackTrigger,第一个是AspNetPager1分页控件了,监听事件PageChanged,第2个就是当新增页面关闭(增加成功情况)时要对父页面(当前这个页面)进行回发,用到的是TextBox1,其事件TextChanged,最后一个就是删除事件用到的txt_delid的TextChanged,因为我这个删除按钮(其实是张图片而已)放在DataGrid中的模板中,动态绑定它的onclick 事件,回发txt_delid的改变值,好让服务端删除记录后刷新局部。
好了,页面代码如下:
 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax_DataGrid.aspx.cs" Inherits="Test_Ajax_DataGrid" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax_DataGrid.aspx.cs" Inherits="Test_Ajax_DataGrid" %>
 <%@ Register Assembly="EMEFRAME" Namespace="EMEFRAME.UIControl" TagPrefix="cc1" %>
<%@ Register Assembly="EMEFRAME" Namespace="EMEFRAME.UIControl" TagPrefix="cc1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server">
<head id="Head1" runat="server"> <title></title>
    <title></title> <script type="text/javascript">
    <script type="text/javascript"> function _del(id)
     function _del(id) {
     { document.getElementById("txt_delid").innerText = id;
        document.getElementById("txt_delid").innerText = id; __doPostBack("txt_delid","");
        __doPostBack("txt_delid",""); }
     } </script>
    </script>
 </head>
</head> <body>
<body> <form id="form1" runat="server">
    <form id="form1" runat="server"> <asp:ScriptManager runat="server" ID="sm">
        <asp:ScriptManager runat="server" ID="sm"> </asp:ScriptManager>
        </asp:ScriptManager> <table width="100%">
        <table width="100%"> <tr>
            <tr> <td align="right" width="70%">
                <td align="right" width="70%">  <input type="button" id="btnAddNew" value="新 增" runat="server" onclick="initPopUp('新建');showPopWin('Test_Add.aspx', 400, 200)" />
                     <input type="button" id="btnAddNew" value="新 增" runat="server" onclick="initPopUp('新建');showPopWin('Test_Add.aspx', 400, 200)" /> </td>
                </td> </tr>
            </tr> </table>
        </table> <div id="SearchDiv" style="display: none;">
        <div id="SearchDiv" style="display: none;"> </div>
        </div> 
         <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate>
                <ContentTemplate> <asp:DataGrid ID="DataGridList" runat="server" Width="100%" AutoGenerateColumns="False"
                    <asp:DataGrid ID="DataGridList" runat="server" Width="100%" AutoGenerateColumns="False" PageSize="20" BorderWidth="1px" BorderColor="#79BCEF" AllowSorting="True" OnSortCommand="DataGridList_SortCommand"
                        PageSize="20" BorderWidth="1px" BorderColor="#79BCEF" AllowSorting="True" OnSortCommand="DataGridList_SortCommand" OnItemDataBound="DataGridList_ItemDataBound">
                        OnItemDataBound="DataGridList_ItemDataBound"> <ItemStyle CssClass="dgItem"></ItemStyle>
                        <ItemStyle CssClass="dgItem"></ItemStyle> <HeaderStyle CssClass="dgTitle"></HeaderStyle>
                        <HeaderStyle CssClass="dgTitle"></HeaderStyle> <Columns>
                        <Columns> <asp:BoundColumn DataField="id" HeaderText="id" SortExpression="id"></asp:BoundColumn>
                            <asp:BoundColumn DataField="id" HeaderText="id" SortExpression="id"></asp:BoundColumn> <asp:BoundColumn DataField="vTest_Name" SortExpression="vTest_Name" HeaderText="名称"></asp:BoundColumn>
                            <asp:BoundColumn DataField="vTest_Name" SortExpression="vTest_Name" HeaderText="名称"></asp:BoundColumn> <asp:BoundColumn DataField="VTest_Creater" HeaderText="创建人" SortExpression="VTest_Creater">
                            <asp:BoundColumn DataField="VTest_Creater" HeaderText="创建人" SortExpression="VTest_Creater"> </asp:BoundColumn>
                            </asp:BoundColumn> <asp:BoundColumn DataField="dTest_CreateDate" SortExpression="dTest_CreateDate" HeaderText="创建时间"
                            <asp:BoundColumn DataField="dTest_CreateDate" SortExpression="dTest_CreateDate" HeaderText="创建时间" DataFormatString="{0:d}"></asp:BoundColumn>
                                DataFormatString="{0:d}"></asp:BoundColumn> <asp:TemplateColumn HeaderText="修改">
                            <asp:TemplateColumn HeaderText="修改"> <HeaderStyle Width="70px"></HeaderStyle>
                                <HeaderStyle Width="70px"></HeaderStyle> <ItemTemplate>
                                <ItemTemplate> <img src="../Images/EditBtn.gif" />
                                    <img src="../Images/EditBtn.gif" /> </ItemTemplate>
                                </ItemTemplate> </asp:TemplateColumn>
                            </asp:TemplateColumn> <asp:TemplateColumn HeaderText="删除">
                            <asp:TemplateColumn HeaderText="删除"> <HeaderStyle Width="50px"></HeaderStyle>
                                <HeaderStyle Width="50px"></HeaderStyle> <ItemTemplate>
                                <ItemTemplate> <img src="../Images/DeleteBtn.gif" />
                                    <img src="../Images/DeleteBtn.gif" /> </ItemTemplate>
                                </ItemTemplate> <EditItemTemplate>
                                <EditItemTemplate> <font face="宋体"></font>
                                    <font face="宋体"></font> </EditItemTemplate>
                                </EditItemTemplate> </asp:TemplateColumn>
                            </asp:TemplateColumn> </Columns>
                        </Columns> <PagerStyle Visible="False" NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
                        <PagerStyle Visible="False" NextPageText="下一页" PrevPageText="上一页"></PagerStyle> </asp:DataGrid>
                    </asp:DataGrid> <cc1:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged"
                    <cc1:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged" PageSize="10">
                        PageSize="10"> </cc1:AspNetPager>
                    </cc1:AspNetPager> <div id="popupMask">
                    <div id="popupMask"> </div>
                    </div> </ContentTemplate>
                </ContentTemplate> <Triggers>
                <Triggers> <asp:AsyncPostBackTrigger ControlID="AspNetPager1" EventName="PageChanged" />
                    <asp:AsyncPostBackTrigger ControlID="AspNetPager1" EventName="PageChanged" /> <asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
                    <asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" /> <asp:AsyncPostBackTrigger ControlID="txt_delid" EventName="TextChanged" />
                    <asp:AsyncPostBackTrigger ControlID="txt_delid" EventName="TextChanged" /> </Triggers>
                </Triggers> </asp:UpdatePanel>
            </asp:UpdatePanel> <asp:Label ID="lblWhere" runat="server" Visible="False"></asp:Label>
        <asp:Label ID="lblWhere" runat="server" Visible="False"></asp:Label> <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" Style="visibility: hidden"></asp:TextBox>
        <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" Style="visibility: hidden"></asp:TextBox> <asp:UpdateProgress ID="uprog" runat="server" DisplayAfter="20">
        <asp:UpdateProgress ID="uprog" runat="server" DisplayAfter="20"> <ProgressTemplate>
            <ProgressTemplate> <div style="background-color: #E2F2FF; color: Black; font-size: 11pt; left: 266px;
                <div style="background-color: #E2F2FF; color: Black; font-size: 11pt; left: 266px; position: absolute; top: 200px; z-index: 3; border: solid 1px #8DD3FF; width: 263px;
                    position: absolute; top: 200px; z-index: 3; border: solid 1px #8DD3FF; width: 263px; height: 80px; text-align: center;">
                    height: 80px; text-align: center;"> <center>
                    <center> <br />
                            <br /> <img src="../Images/blu.gif" alt=" " />
                            <img src="../Images/blu.gif" alt=" " /> <br />
                            <br /> 数据更新中,请稍候
                            数据更新中,请稍候
 <br />
                            <br /> </center>
                    </center> </div>
                </div> </ProgressTemplate>
            </ProgressTemplate> </asp:UpdateProgress>
        </asp:UpdateProgress> <asp:TextBox ID="txt_delid" runat="server" OnTextChanged="txt_delid_TextChanged"
        <asp:TextBox ID="txt_delid" runat="server" OnTextChanged="txt_delid_TextChanged" Style="visibility: hidden"></asp:TextBox>
            Style="visibility: hidden"></asp:TextBox> </form>
    </form> </body>
</body> </html>
</html>
cs代码如下:
 using System;
using System; using System.Data;
using System.Data; using System.Configuration;
using System.Configuration; using System.Collections;
using System.Collections; using System.Web;
using System.Web; using System.Web.Security;
using System.Web.Security; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 using _91dos.Components.BusApp;
using _91dos.Components.BusApp;
 public partial class Test_Ajax_DataGrid : EMEFRAME.ListDataPage
public partial class Test_Ajax_DataGrid : EMEFRAME.ListDataPage {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    { if (!Page.IsPostBack)
        if (!Page.IsPostBack) {
        { //页面权限控制
            //页面权限控制 //MenuCode = "44";
            //MenuCode = "44"; //ShowHiddenControl();
            //ShowHiddenControl();
 /***********************************************************************************
            /***********************************************************************************     初始化排序字段
             初始化排序字段 ***********************************************************************************/
            ***********************************************************************************/ if ((string)ViewState["SortExpression"] == null || (string)ViewState["SortExpression"] == "")
            if ((string)ViewState["SortExpression"] == null || (string)ViewState["SortExpression"] == "") {
            { ViewState["SortExpression"] = "dTest_CreateDate";        //默认排序字段
                ViewState["SortExpression"] = "dTest_CreateDate";        //默认排序字段 ViewState["SortDirection"] = false;
                ViewState["SortDirection"] = false; }
            } /***********************************************************************************
            /***********************************************************************************     绑定DataGrid数据
            绑定DataGrid数据  **********************************************************************************/
            **********************************************************************************/ DataGrid_bind();
            DataGrid_bind(); }
        } }
    } //表格数据绑定
    //表格数据绑定 private void DataGrid_bind()
    private void DataGrid_bind() {
    { int RecordCount;
        int RecordCount; DataTable dTable = _91dos_TestApp.Get_91dos_TestPage(AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, lblWhere.Text, Convert.ToBoolean(ViewState["SortDirection"]), ViewState["SortExpression"].ToString(), out RecordCount);
        DataTable dTable = _91dos_TestApp.Get_91dos_TestPage(AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, lblWhere.Text, Convert.ToBoolean(ViewState["SortDirection"]), ViewState["SortExpression"].ToString(), out RecordCount); AspNetPager1.RecordCount = RecordCount;
        AspNetPager1.RecordCount = RecordCount; DataGridList.DataSource = dTable;
        DataGridList.DataSource = dTable; DataGridList.DataBind();
        DataGridList.DataBind(); PagerBindDate();
        PagerBindDate(); }
    } protected void DataGridList_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    protected void DataGridList_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) {
    { this.DataGridSortData(e);
        this.DataGridSortData(e); DataGrid_bind();
        DataGrid_bind(); }
    } //分页事件
    //分页事件 protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    protected void AspNetPager1_PageChanged(object sender, EventArgs e) {
    { DataGrid_bind();
        DataGrid_bind(); }
    } //页面回调刷新
    //页面回调刷新 protected void TextBox1_TextChanged(object sender, EventArgs e)
    protected void TextBox1_TextChanged(object sender, EventArgs e) {
    { DataGrid_bind();
        DataGrid_bind(); TextBox1.Text = "";
        TextBox1.Text = ""; }
    } protected void DataGridList_ItemDataBound(object sender, DataGridItemEventArgs e)
    protected void DataGridList_ItemDataBound(object sender, DataGridItemEventArgs e) {
    { if (e.Item.ItemIndex != -1)
        if (e.Item.ItemIndex != -1) {
        { //if (e.Item.Cells[1].Text.ToUpper().Trim() == "ADMIN")
            //if (e.Item.Cells[1].Text.ToUpper().Trim() == "ADMIN") //{
            //{ //    e.Item.Cells[4].Attributes.Add("onclick", "alert(\"超级管理员不可被修改!\");");
            //    e.Item.Cells[4].Attributes.Add("onclick", "alert(\"超级管理员不可被修改!\");"); //    e.Item.Cells[5].Attributes.Add("onclick", "alert(\"超级管理员不可被删除!\");");
            //    e.Item.Cells[5].Attributes.Add("onclick", "alert(\"超级管理员不可被删除!\");"); //}
            //} //else
            //else //{
            //{ e.Item.Cells[4].Attributes.Add("onclick", "initPopUp('修改信息');showPopWin('Test_Edit.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)");
            e.Item.Cells[4].Attributes.Add("onclick", "initPopUp('修改信息');showPopWin('Test_Edit.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)"); e.Item.Cells[5].Attributes.Add("onclick", "if(confirm('是否要永久删除该条记录?')){_del('" + e.Item.Cells[0].Text + "');}");
                e.Item.Cells[5].Attributes.Add("onclick", "if(confirm('是否要永久删除该条记录?')){_del('" + e.Item.Cells[0].Text + "');}"); //}
            //} for (int i = 0; i < 5; i++)
            for (int i = 0; i < 5; i++) {
            { e.Item.Cells[i].Attributes.Add("ondblclick", "initPopUp('详细信息');showPopWin('Test_Detail.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)");
                e.Item.Cells[i].Attributes.Add("ondblclick", "initPopUp('详细信息');showPopWin('Test_Detail.aspx?id=" + e.Item.Cells[0].Text + "', 400, 200)"); }
            } }
        } }
    } //删除事件
    //删除事件 protected void txt_delid_TextChanged(object sender, EventArgs e)
    protected void txt_delid_TextChanged(object sender, EventArgs e) {
    { if (txt_delid.Text != "")
        if (txt_delid.Text != "") {
        { if (_91dos_TestApp._91dos_TestDelete(txt_delid.Text))
            if (_91dos_TestApp._91dos_TestDelete(txt_delid.Text)) {
            { DataGrid_bind();
                DataGrid_bind(); txt_delid.Text = "";
                txt_delid.Text = ""; }
            } else
            else {
            { alert("删除出错!");
                alert("删除出错!"); }
            } }
        } }
    } }
} 
                    
                 


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号