正如您所说,“由于它与下拉列表的数据源相同,因此我在下拉列表中获得了一个较小的不同列表。”
您可以将 保留Database Information在ViewState中。这样,您可以阻止 Request to Database您的客户请求。因此Reducing the Access time。
例子
public DataTable Employees
{
get
{
if (ViewState["Employees"] == null)
{
return FollowsDAL.GetAllEmployees();
}
return (DataTable)ViewState["Employees"];
}
set
{
ViewState["Employees"] = value;
}
}
如何使ViewState数据过滤快速?
答案是 - 请不要使用Update Panel. 我会用Page Method.
请检查下面的示例。我Update Panel与Script Manager.

输出

要显示 22 个字符的字符串,您可以检查正在接收和发送到服务器的数据量。想象一下
- 如果您考虑使用更新面板将每个请求发送到数据库并且您的 GridView 在
Update Panel!!!!!!
- 如果您对每个请求使用ViewState
GridView数据并在Update Panel.
根据我的理解,上述两种技术都是最差的。
现在我将向您描述页面方法
更新面板上的页面方法
Page methods允许ASP.NET AJAX页面直接执行 a Page’s Static Methods,使用JSON (JavaScript Object Notation). 代替posting back and then receiving HTML markupto completely replace our UpdatePanel’s contents,我们可以使用 aweb method只请求我们感兴趣的信息。
示例代码

输出

所以结论是我肯定会使用ViewState BUT with Page Methods.
ViewState 数据的过滤技术。
public static class GetFilteredData
{
public static DataTable FilterDataTable(this DataTable Dt,
string FilterExpression)
{
using (DataView Dv = new DataView(Dt))
{
Dv.RowFilter = FilterExpression;
return Dv.ToTable();
}
}
}
例子
DataTableObject.FilterDataTable("Search Expression")
嗨 vpiTriumph... 我发现代码有所改进。以下是建议的方法。
C Sharp 中的示例代码
private void DsataBaseInteraction()
{
using (SqlConnection con = new SqlConnection("Your Connection String"))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "Your Stored Procedure name";
using (SqlDataReader DR = cmd.ExecuteReader())
{
}
}
}
}
@KevinDeus - 我假设Database正在使用的是SQL Server. 所以下面提到的是我对Stored Procedurein的建议Database。
Create Proc ProcedureName
@UserName Varchar(50),
@Password Varchar(50),
@Email Varchar(50)
As
SET NOCOUNT ON
SET XACT_ABORT ON
Begin Try
Begin Tran
Insert into Account (Username,Password, Email)
Values(@UserName, @Password, @Email)
Commit Tran
End Try
Begin Catch
Rollback Tran
End Catch