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>