gpt4 book ai didi

c# - 带有远程数据和 asp.net 的 jQuery select2

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:35 24 4
gpt4 key购买 nike

我正在使用 select2 库来替换选择框。我重新整理了您可以在 Select2 library 上找到的示例 7页面(使用 id 向下滚动$("#e7").select2 等...)。我制作了自己的通用处理程序,它返回序列化的 json 数据:

GetData.asxh View : 公共(public)类 GetData:IHttpHandler { 公共(public) bool IsReusable { 得到 { 返回假; }

    public class RecipesList
{
public int total { get; set; }
public List<TopRecipeTable> recipes { get; set; }

public RecipesList() { }

public RecipesList(int total, List<TopRecipeTable> recipes)
{
this.total = total;
this.recipes = recipes;
}
}

private string GenerateJsonSerializedObject(int languageId, string orderBy)
{
RecipesList recipeList = new RecipesList(15, DBDataBase.GetTopRecipesByNumberOfRecipes(languageId, 15));
return new JavaScriptSerializer().Serialize(recipeList);
}

public void ProcessRequest(HttpContext context)
{
int languageId;
bool languageParsed = int.TryParse(context.Request["languageId"], out languageId);
string orderBy = (string)context.Request["orderBy"];

if (languageParsed && orderBy != string.Empty)
{enter code here
context.Response.ContentType = "application/json";
var jsonValue = GenerateJsonSerializedObject(languageId, orderBy);
context.Response.Write(jsonValue);
}
}

这个通用处理程序返回正确格式的 json(我用 this URL 检查过)。我的结果 (json) 也与上述页面示例中的结果相同。但是在这个 jquery 不再触发之后。

我的脚本:

$(document).ready(function () {
$("#e8").select2({
placeholder: "Search for a recipe",
//minimumInputLength: 1,
ajax: {
url: "/Handlers/GetData.ashx",
dataType: 'jsonp',
data: function (term, page) {
return {
languageId: 1,
orderBy: "TA"
};
},
results: function (data, page) {
alert(data.total);
var more = (page * 10) < data.total; // whether or not there are more results available

// notice we return the value of more so Select2 knows if more results can be loaded
return { results: data.recipes, more: more };
}
},
formatResult: movieFormatResult, // omitted for brevity, see the source of this page
formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page
dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
escapeMarkup: function (m) { return m; } // we do not want to escape markup since we are displaying html in results
});
});

我尝试在原始示例中编写相同的 alert(data.total) 并且它有效但在我的版本中无效。所以我有正确的 json 格式,jquery 调用我的通用处理程序并且还收到参数 languageId ...并且还返回正确的 json 格式但总比没有。我不知道我是否在这里遗漏了什么,因为我确信这个东西也可以与通用处理程序一起使用。我希望我提供了有关我的问题的足够信息。

I can also add my result in jquery .ajax error handler : 
xhr.status = 200
ajaxOptions = parsererror
horwnError = SyntaxError : invalid label
If this is any helpful information

最佳答案

这个问题很老了,所以很确定你现在已经有了解决方案......但是:

删除所有这些函数:

格式结果:电影格式结果格式选择:电影格式选择下拉CSS类:...转义标记:....

您没有提供这些功能来格式化您的数据,是吗?所有这些只有在您制作自定义项目下拉列表时才需要。

您要返回 data.recipes - 它需要是 {Text:"", Id:""} 的数组,或者您需要根据返回的内容构建它。

首先,让它只使用一个非常基本的列表和非常基本的数据......然后从那里开始。

此外,当您开始工作时,请尝试使用 WebApi 或 ServiceStack 来处理您的数据,而不是 IHttpHandler。

关于c# - 带有远程数据和 asp.net 的 jQuery select2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14831392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com