设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源平台

一個Ajax.NET的查詢實例

来源网络收集 作者:佚名 时间:2007-4-25 15:03:04 该文得分0

因為項目中只能用.net 1.1,所以atlas是用不了了,只能玩玩AjaxProfession.net, 下面是一個查詢的案例。 在頁面上放置一個DataGrid1,各種查詢結果均放入其中,在client端的JS中將SQL語句傳給server端的方法,執行一個查詢,並可以控制雙擊行是否展開一個新的查詢。可將DataGrid1的內容導出到Excel中、模擬gmail的Ajax的loading運用

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.SqlClient;
using System.IO;
namespace eol
{
    /**//// <summary>
    /// index 的摘要描述。
    /// </summary>
    public class index : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.TextBox TextBox1;
        protected WebControlLibrary.InputCalendar startTime;
        protected WebControlLibrary.InputCalendar endTime;
        protected WebControlLibrary.InputCalendar pStartTime;
        protected WebControlLibrary.InputCalendar pEndTime;
        protected System.Data.SqlClient.SqlConnection Conn=new SqlConnection();
        protected System.Web.UI.WebControls.TextBox eformsn;
        protected System.Web.UI.WebControls.Label Label1;
        protected System.Web.UI.WebControls.DataGrid DataGrid1=new DataGrid();
        protected System.Web.UI.WebControls.Button Button2;
        protected System.Web.UI.HtmlControls.HtmlInputText applicant;
        public string toExcel;
   
        private void Page_Load(object sender, System.EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof(eol.index));
        }

        public DataSet DB(string dataName, string sqlCmd)
        {
            string connStr="server=172.16.0.120;uid=msikdb;pwd=dbmsik;database="+dataName;
            Conn.ConnectionString=connStr;
            try
            {
                Conn.Open();
            }
            catch(Exception ex)
            {
                Conn.Close();
                Response.Write(ex.Message);
            }
            SqlCommand cmd=new SqlCommand(sqlCmd, Conn);
            SqlDataAdapter da=new SqlDataAdapter();
            da.SelectCommand=cmd;
            DataSet ds = new DataSet();
            da.Fill(ds);
            Conn.Close();
            return ds;
        }

        Web Form 設計工具產生的程式碼#region Web Form 設計工具產生的程式碼
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /**//// <summary>
        /// 此為設計工具支援所必須的方法 - 請勿使用程式碼編輯器修改
        /// 這個方法的內容。
        /// </summary>
        private void InitializeComponent()
        {   
            this.Conn = new System.Data.SqlClient.SqlConnection();
            this.Button2.Click += new System.EventHandler(this.Button2_Click);
            this.DataGrid1.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.getPageIndexStyle);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion


        private void getPageIndexStyle(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
           
            if(e.Item.ItemType == ListItemType.Pager)
            {
                e.Item.Cells[0].Text="Total Row:"+this.DataGrid1.Items.Count.ToString();
            }
        }
       
        [AjaxPro.AjaxMethod]
        public string AjaxData(string sSql, bool clientEvent)
        {
            if (clientEvent)
            {
                DataGrid1.ItemDataBound+=new DataGridItemEventHandler(DataGrid1_ItemDataBound);
            }
//            DataGrid1.AllowPaging=true;
//            DataGrid1.PagerStyle.Position=PagerPosition.Top;
//            DataGrid1.PagerStyle.Mode=PagerMode.NumericPages;
//            DataGrid1.ItemCreated+=new DataGridItemEventHandler(getPageIndexStyle);
            DataGrid1.DataSource=DB("query",sSql);
            DataGrid1.HeaderStyle.BackColor=System.Drawing.Color.Blue;
            DataGrid1.Width=Unit.Percentage(100);
            DataGrid1.HeaderStyle.ForeColor=System.Drawing.Color.White;
            DataGrid1.DataBind();
           
           
            System.Text.StringBuilder sb=new System.Text.StringBuilder();
            System.IO.StringWriter sw=new System.IO.StringWriter(sb);
            System.Web.UI.HtmlTextWriter htw=new HtmlTextWriter(sw);
            this.DataGrid1.RenderControl(htw);
            string s=sb.ToString().Replace(" 上午 12:00:00", "");
            this.toExcel=s;
            Session["txtExcel"]=s;
            return s;
        }
       
        public void setToExcel()
        {
            //下面這行很重要,attachment 參數表示作為附件下載,您可以改成online在線打開
            //filename=FileFlow.xls 指定輸出文件的名稱,注意其擴展名和指定文件類型相符,可以為:.doc    .xls    .txt  .htm  
            Response.AppendHeader("Content-Disposition","attachment;filename=EOL_"+eformsn.Text+".xls");
            Response.ContentEncoding=System.Text.Encoding.GetEncoding("big5"); 
            //Response.ContentType指定文件類型 可以為application/ms-excel,application/ms-word ,application/ms-txt,application/ms-html或其他瀏覽器可直接支持文檔 
            Response.ContentType = "application/ms-excel";

            Response.Write(this.toExcel);
            Response.Write(Session["txtExcel"]);
            Session.Abandon();
            Response.End();
        }

        private void Button2_Click(object sender, System.EventArgs e)
        {
            setToExcel();
        }

        private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            ListItemType itemtype=(ListItemType)e.Item.ItemType;
            if (itemtype!=ListItemType.Header && itemtype!=ListItemType.Footer && itemtype!=ListItemType.Separator)
            {
                e.Item.Attributes.Add("ondblclick", "showDetail("+e.Item.Cells[1].Text+");");
                e.Item.Attributes.Add("onmouseover","this.className='mouseOn'");
                e.Item.Attributes.Add("onmouseout", "this.className=''");
            }
        }

    }
}
Client端的js:
<script language="javascript">       
var obj=document.all;
var frm=document.forms[0]

[1] [2]  下一页

相关文章
广告赞助
网友评论

共有 0 位网友发表了评论,平均得分: 0 查看完整内容

用户名:

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

(注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码