在ASP.NET中如何使用ASP.NET AJAX实时搜索功能控件--RealTimeSearchMonitor

      Web Client Software Factory v2.0包含了一个RealTimeSearchMonitor控件 提供实时搜索功能 来帮助你在ASP.NET中使用ASP.NET AJAX 局部更新网页。


      此文章帮助你 如何在ASP.NET 中使用 RealTimeSearchMonitor控件,数据来自Northwind数据库的Customers表,数据访问是用企业库写的,当然你也可以使用别的任何方式返回数据源,,不过不用企业库写个SQL语句还真是够复杂!!!

 

先决条件
使用realtimesearchmonitor ,必须是在一个网站或Web应用程序项目中用,并要符合下列条件:
配置为目标的Microsoft 。 NET Framework 3.5 。

表单必须至少有一个搜索输入控件,如:TextBox控件。

搜索结果必须包含ASP.NET AJAX UpdatePanel控件中。

 

1.下载Web Client Software Factory v2.0, RealTimeSearchMonitor源代码路径是:Web Client Software Factory 2.0\Samples\RealTimeSearch\RealTimeSearch,编译通过,引用realtimesearch.dll到网站就行了。

2.拖放控件到页面

需要设置AssociatedUpdatePanelID属性指向UpdatePanel的ID,

需要设置ControlsToMonitor(集合)中的属性TargetID指向输入控件,eventname事件是可选的,如果没有设置该属性默认由TargetID的控件事件更新。

app_img1

  <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div>
        <asp:TextBox ID="TextBox1" OnTextChanged="TextBox1_TextChanged" runat="server" />
        <rts:RealTimeSearchMonitor ID="CustomerRealTimeSearchMonitor" runat="server" Interval="700"
            AssociatedUpdatePanelID="UpdatePanel">
            <ControlsToMonitor>
                <rts:ControlMonitorParameter TargetID="TextBox1" />
            </ControlsToMonitor>
        </rts:RealTimeSearchMonitor>
        <asp:UpdatePanel ID="UpdatePanel" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <hr />
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CustomerID"
                    PageSize="10" AllowPaging="True" Width="690px" OnPageIndexChanging="GridView1_PageIndexChanging">
                    <Columns>
                        <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" SortExpression="CustomerID" />
                        <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />
                        <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" />
                        <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" SortExpression="ContactTitle" />
                        <asp:BoundField DataField="City" HeaderText="Zip" SortExpression="City" />
                        <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />
                    </Columns>
                </asp:GridView>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>

3.先看看效果:

app_img2

app_img3

4.事件代码

    <script runat="server" language="C#">
        protected void TextBox1_TextChanged ( object sender, EventArgs e ) {
            GridViewDataBind ();
        }

        public static DataSet GetCustomers ( string prefixText ) {
            Database db = DatabaseFactory.CreateDatabase ( "ConnectDB" );
            string sql = null;

            if ( string.IsNullOrEmpty ( prefixText ) )

                sql = "select * from Customers";

            else

                sql = "select * from Customers WHERE CompanyName LIKE '"

                            + prefixText + "%'";

            return db.ExecuteDataSet ( CommandType.Text, sql );
        }


        protected void GridView1_PageIndexChanging ( object sender, GridViewPageEventArgs e ) {
            this.GridView1.PageIndex = e.NewPageIndex;
            GridViewDataBind ();
        }

        private void GridViewDataBind () {
            this.GridView1.DataSource =
                 GetCustomers ( this.TextBox1.Text );
            this.GridView1.DataBind ();
        }

    </script>

Happy 共享此文 :
posted @ 2008-08-26 11:12  真见  阅读(3446)  评论(19编辑  收藏  举报