如何通过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中获取值