如何通过JQuery/Javascript优化Listbox绑定C代码?
单击“上一步”按钮返回页面时:如何通过JQuery/Javascript优化Listbox绑定C代码?,javascript,c#,jquery,asp.net,dropdown,Javascript,C#,Jquery,Asp.net,Dropdown,单击“上一步”按钮返回页面时: protected void TsrProc_BackButton_Click(object sender, EventArgs e) { Response.Redirect("~/TSP/TSR_SearchList.aspx?rtn=1&bl=1"); } 我收到以下错误: IE 11中某个时间后长时间运行的脚本错误 镀铬: 下一页已无响应 返回时,我绑定了5-6 dropdownlist,当我在下拉列表中选择所有建筑时,会出现此错误 下拉列
protected void TsrProc_BackButton_Click(object sender, EventArgs e)
{
Response.Redirect("~/TSP/TSR_SearchList.aspx?rtn=1&bl=1");
}
我收到以下错误:
IE 11中某个时间后长时间运行的脚本错误
镀铬:
下一页已无响应
返回时,我绑定了5-6 dropdownlist,当我在下拉列表中选择所有建筑时,会出现此错误
下拉列表C代码之一如下所示:
if (Request.QueryString("rtn").Equals("1")) {
filterValue = Session["SEARCHWORKREQUEST"];
string buildingsFilter = filterArray(1);
List<string> buildings = new List<string>();
foreach (string buildingsitem in buildingsFilter.Split(",")) {
if (buildingsitem.Trim().Equals(string.Empty)) {
continue;
}
buildings.Add(buildingsitem);
if ((drpBuilding.Items.FindByValue(buildingsitem) != null)) {
drpBuilding.Items.FindByValue(buildingsitem).Selected = true;
}
}
}
// binding the building dropdown
private void BindBuildingList()
{
this.drpBuilding.Items.Clear();
List<PulseResponse.BLL.Building> lstBuildings = default(List<PulseResponse.BLL.Building>);
lstBuildings = this.mBuildingBLL.Get_ContactSiteBuildingsList(
p_ContactID: UserWrapper.GetCurrentUser().ContactID,
p_ShowInactive: false);
if (lstBuildings.Count > 0) {
this.drpBuilding.Enabled = true;
this.drpBuilding.DataSource = lstBuildings;
this.drpBuilding.DataTextField = "Building";
this.drpBuilding.DataValueField = "BuildingID";
this.drpBuilding.DataBind();
} else {
this.drpBuilding.Enabled = false;
}
}
有没有办法通过jQuery/Javascript再次绑定下拉列表来加快代码的速度?首先,列表框将呈现为 在浏览器中 其次,您可以使用jQueryAjax调用web方法从数据库检索数据,并且可以根据AJAX成功回调函数中返回的数据动态添加到listbox
$.ajax({
type: "Post",
url: "page/yourmethodname",
data: "{'Key':'value'}",//if any otherwise leave
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//add new options to ListBox dynamically
//use for loop to iterate through kay-val pair and bind
for(var i=0i<data.length;i++){
var newoption = '<option value='+data[i].key+'>'+data[i].value+'</option>';
$("#ListBox1").append(newoption);
}
},
error: function (err) {
alert(err);
}
})
首先,列表框将呈现为 在浏览器中 其次,您可以使用jQueryAjax调用web方法从数据库检索数据,并且可以根据AJAX成功回调函数中返回的数据动态添加到listbox
$.ajax({
type: "Post",
url: "page/yourmethodname",
data: "{'Key':'value'}",//if any otherwise leave
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//add new options to ListBox dynamically
//use for loop to iterate through kay-val pair and bind
for(var i=0i<data.length;i++){
var newoption = '<option value='+data[i].key+'>'+data[i].value+'</option>';
$("#ListBox1").append(newoption);
}
},
error: function (err) {
alert(err);
}
})
对于您正在使用的每个部分,都是无限循环的。这就是浏览器变得无响应的原因。你能把你的代码发布到你提出绑定请求的地方吗?@HEGDE更新了代码。在这里,我们首先获取所有的构建,然后过滤通过会话选择的构建用户。你是否用if绑定下拉列表值!IsPostBack{/…}节?@HEGDE使用SP'lstBuildings=this.mBuildingBLL.Get_ContactSiteBuildingsListp_ContactID:UserWrapper.GetCurrentUser.ContactID,p_ShowInactive:false;不,我明白你的意思。我的问题是,您是否要将此下拉列表绑定到backbutton上,请单击“如果”!IspostBack{}节还是简单地调用一个函数?您正在使用的每个节的。这就是浏览器变得无响应的原因。你能把你的代码发布到你提出绑定请求的地方吗?@HEGDE更新了代码。在这里,我们首先获取所有的构建,然后过滤通过会话选择的构建用户。你是否用if绑定下拉列表值!IsPostBack{/…}节?@HEGDE使用SP'lstBuildings=this.mBuildingBLL.Get_ContactSiteBuildingsListp_ContactID:UserWrapper.GetCurrentUser.ContactID,p_ShowInactive:false;不,我明白你的意思。我的问题是,您是否要将此下拉列表绑定到backbutton上,请单击“如果”!IspostBack{}节,或者只是调用一个函数?我的列表框在服务器上运行,通过这段代码,我将无法在服务器端获取值。您可以获取值,如果不使用$ListBox1,您必须使用$ListBox1,或者您可以使用class.ListBox1在jquerymy listbox服务器上运行来获取值,并且通过此代码,我将无法在服务器端获取值。您可以获取值,而不是$ListBox1,或者您必须使用$ListBox1,或者您可以使用class.ListBox1在jquery中获取值