ASP.NET学习社区

首页 » ASP.NET学习区 » 小学水平 » 关于增量查询的实现
xx972611 - 2008-7-14 17:08:00
用xmlhttp

1.定义单行编辑器的用户事件ue_enchange,事件的ID为:pbm_enchange。这个事件能响应键盘的输入。 
    2.在单行编辑器的ue_enchange事件中编写如下脚本: 
          long  lng_found_row 
             string  str_find   
   
                //查找条件(左部分与单行编辑器文本相等) 
          str_find  =  "ID  like  "  +  "'"  +  this.text  +  "%'"   
                //查找符合条件的行 
             lng_found_row  =  dw_name.Find(str_find,  1,  dw_name.RowCount()) 
             if  lng_found_row  <=  0  then  return 
                //滚动到相匹配的行 
             dw_name.ScrollToRow(lng_found_row) 
             dw_name.SelectRow(0  ,  false) 
                //将匹配行加亮显示   
             dw_name.SelectRow(lng_found_row  ,  true)   
   
  [注]Find()函数   
   
  用法:  dwcontrol.Find(  expression  ,  start  ,  end  )   
  说明:  查找满足条件的下一行。   
  返回值:  long,返回指定范围内满足查找条件的第一个数据行的行号;未找到返回0;出错返回-1。   
  参数  类型及说明   
  dwcontrol  数据窗口控件名。   
  expression  string,用于指定要查找的条件,其值是个逻辑表达式,表达式中可以使用列名。   
  start  long,用于指明从哪一行开始查找。该参数可以大于数据的总行数。   
  end    long,用于指明查找到哪一个结束查找。该参数可以大于数据的总行数,如果想从后向前找,那么让end参数的值小于start参数即可。   
   
      →我是小木鱼(Lag) 
   
  写于2000年12月04日 




给你发个吧,我也是刚测试出来的.增量查询,静态刷新.  里面的取dataset是我的数据类,你自己写吧.
1.定义个实例变量idwc_dddw 
  2.在窗口的open事件里面写 
  dw_1.GetChild('数据窗口中加dddw的列名',  idwc_dddw) 
  idwc_dddw.SetTransObject(SQLCA) 
  idwc_dddw.Retrieve('参数') 
  3.在editchanged里面写 
  idwc_dddw.setfilter("字段名  like  '"+data+"%'") 
  idwc_dddw.filter() 
  4.OK搞定

1.webForm1.aspx 
  <%@  Page  language="c#"  Codebehind="WebForm1.aspx.cs"  AutoEventWireup="false"  Inherits="HeFengSMS.SubModule.Test.WebForm1"  %> 
  <!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.0  Transitional//EN"  > 
  <HTML> 
  <HEAD> 
  <title>WebForm1</title> 
  </HEAD> 
  <BODY> 
  <meta  c  name="GENERATOR"> 
  <meta  c  name="CODE_LANGUAGE"> 
  <meta  c  name="vs_defaultClientScript"> 
  <meta  chttp://schemas.microsoft.com/intellisense/ie5">http://schemas.microsoft.com/intellisense/ie5"  name="vs_targetSchema"> 
  <script> 
     
        
     function  search(strWords) 
     { 
     
     var  lst1  =  document.getElementById("ListBox1"); 
     lst1.options.length=0; 
     
  //alert(strWords) 
     var  oHttpReq  =  new  ActiveXObject("MSXML2.XMLHTTP"); 
     var  oDoc  =  new  ActiveXObject("MSXML2.DOMDocument"); 
     
     oHttpReq.open("POST",  "WebForm3.aspx?strWords="+escape(strWords),  false); 
     oHttpReq.send(""); 
     result  =  oHttpReq.responseText; 
     //alert(result); 
     oDoc.loadXML(result); 
     
     items  =  oDoc.selectNodes("//NewDataSet/Class"); 
     
     for  (var  item  =  items.nextNode();  item;  item  =  items.nextNode()) 
     { 
     var  DeptNo  =  item.selectSingleNode("DeptNo").nodeTypedValue; 
     var  DeptName  =  item.selectSingleNode("DeptName").nodeTypedValue; 
     //document.getElementById('dropdownlist').value 
     
     var  newOption  =  document.createElement("OPTION"); 
     newOption.text  =  DeptName; 
     newOption.value  =  DeptNo; 
     lst1.options.add(newOption); 
     } 
   
     } 
  </script> 
  <form  id="Form1"  method="post"  runat="server"> 
  <P> </P> 
  <asp:textbox  id="TextBox1"  runat="server"></asp:textbox></P> 
  <P><asp:listbox  id="ListBox1"  runat="server"  Height="120px"  Width="160px"></asp:listbox></P> 
  <P> </P> 
  </form> 
  </BODY> 
  </HTML> 








WebForm1.aspx.cs 
  using  System; 
  using  System.Collections; 
  using  System.ComponentModel; 
  using  System.Data; 
  using  System.Data.SqlClient; 
  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  HeFengSMS.SubModule.Test 
  { 
  ///  <summary> 
  ///  WebForm1  的摘要说明。 
  ///  </summary> 
  public  class  WebForm1  :  System.Web.UI.Page 
  { 
  protected  System.Web.UI.WebControls.DropDownList  DropDownList1; 
  protected  System.Web.UI.WebControls.DropDownList  DropDownList2; 
  protected  System.Web.UI.WebControls.TextBox  TextBox1; 
  protected  System.Web.UI.WebControls.ListBox  ListBox1; 
  protected  System.Web.UI.WebControls.Button  Button1; 
   
  private  void  Page_Load(object  sender,  System.EventArgs  e) 
  { 
  //  在此处放置用户代码以初始化页面 
  if(!this.IsPostBack) 
  { 
  this.TextBox1.Attributes.Add("onkeyup","search(document.all.TextBox1.value)"); 
     } 
   
  } 
   
  #region  Web  窗体设计器生成的代码 
  override  protected  void  OnInit(EventArgs  e) 
  { 
  // 
  //  CODEGEN:  该调用是  ASP.NET  Web  窗体设计器所必需的。 
  // 
  InitializeComponent(); 
  base.OnInit(e); 
  } 
   
  ///  <summary> 
  ///  设计器支持所需的方法  -  不要使用代码编辑器修改 
  ///  此方法的内容。 
  ///  </summary> 
  private  void  InitializeComponent() 
  {         
  this.Load  +=  new  System.EventHandler(this.Page_Load); 
   
  } 
  #endregion 
   
   
  } 
  }









WebForm3.aspx 
  <%@  Page  language="c#"  Codebehind="WebForm3.aspx.cs"  AutoEventWireup="false"  Inherits="HeFengSMS.SubModule.Test.WebForm3"  %> 
  <!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.0  Transitional//EN"  > 
  <HTML> 
  <HEAD> 
  <title>WebForm3</title> 
  <meta  c  name="GENERATOR"> 
  <meta  c  name="CODE_LANGUAGE"> 
  <meta  c  name="vs_defaultClientScript"> 
  <meta  chttp://schemas.microsoft.com/intellisense/ie5">http://schemas.microsoft.com/intellisense/ie5"  name="vs_targetSchema"> 
  </HEAD> 
  <body  MS_POSITI> 
  <form  id="Form1"  method="post"  runat="server"> 
  <FONT  face="宋体"></FONT> 
  </form> 
  </body> 
  </HTML>






2.WebForm3.aspx.cs 
  using  System; 
  using  System.Collections; 
  using  System.ComponentModel; 
  using  System.Data; 
  using  System.Data.SqlClient; 
  using  System.Xml; 
  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  HeFengSMS.SubModule.Test 
  { 
  ///  <summary> 
  ///  WebForm3  的摘要说明。 
  ///  </summary> 
  public  class  WebForm3  :  System.Web.UI.Page 
  { 
  private  void  Page_Load(object  sender,  System.EventArgs  e) 
  { 
  //  在此处放置用户代码以初始化页面 
  if(!IsPostBack) 
  { 
  if(this.Request["strWords"]!=null) 
  { 
     string  strWords  =  Server.HtmlDecode(this.Request["strWords"].ToString()); 
  string  strSql  =  "select  DeptNo,DeptName  from  Depts  where  DeptName  like  '%"+strWords+"%'"  ; 
   
  HeFengSMS.Components.Public  p=new  HeFengSMS.Components.Public(); 
  DataSet  ds  =  new  DataSet(); 
  ds=p.GetDs("Class",strSql); 
  XmlTextWriter  writer  =  new  XmlTextWriter(Response.OutputStream,  Response.ContentEncoding); 
   
     writer.Formatting  =  Formatting.Indented; 
     writer.Indentation  =  4; 
     writer.IndentChar  =  '  '; 
     ds.WriteXml(writer); 
     writer.Flush(); 
     Response.End(); 
     writer.Close(); 
  ds.Clear(); 
  } 
          } 
  } 
   
  #region  Web  窗体设计器生成的代码 
  override  protected  void  OnInit(EventArgs  e) 
  { 
  // 
  //  CODEGEN:  该调用是  ASP.NET  Web  窗体设计器所必需的。 
  // 
  InitializeComponent(); 
  base.OnInit(e); 
  } 
   
  ///  <summary> 
  ///  设计器支持所需的方法  -  不要使用代码编辑器修改 
  ///  此方法的内容。 
  ///  </summary> 
  private  void  InitializeComponent() 
  {         
  this.Load  +=  new  System.EventHandler(this.Page_Load); 
   
  } 
  #endregion 
  } 
  }
1
查看完整版本: 关于增量查询的实现