我使用带有javascript的PageMethod来调用服务器端代码:
function getMonths() {
PageMethods.BindMonthlyPeriods(getMonthsSuccess, onFailure); }
}
function getMonthsSuccess(result, userContext, methodName) {
var picker = document.getElementById("monthPicker");
for (var i = 0; i < result.length; i++) {
var newOption = document.createElement('option');
newOption.text = result[i];
newOption.value = result[i];
picker.add(newOption);
}
}
在代码隐藏中使用它:
[WebMethod]
public static string[] BindMonthlyPeriods()
{
}
这在IE / Chrome中运行良好,但在Firefox中没有。没有特定的错误信息数据只是没有在Firefox中填充。
我也试过使用jQuery ajax调用,但这不起作用,虽然我不确定我是否已正确完成:
function getMonths() {
$.ajax({
type: "POST",
url: "page.aspx/BindMonthlyPeriods",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var picker = document.getElementById("monthPicker");
for (var i = 0; i < msg.length; i++) {
var newOption = document.createElement('option');
newOption.text = result[i];
newOption.value = result[i];
picker.add(newOption);
}
}
});
编辑
使用Firebug我没有在Net选项卡中找到任何错误消息,但在控制台选项卡中找到了此错误:
未捕获异常:[异常......“参数不足”nsresult:“0x80570001(NS_ERROR_XPC_NOT_ENOUGH_ARGS)”位置:“JS frame :: http://xxxxx.xxxxxxx.com/.../page.aspx :: getMonthsSuccess :: line 251”data:no]
答案 0 :(得分:0)
通过将null参数添加到monthpicker的'add'方法来解决这个问题:
picker.add(newOption,null);
答案 1 :(得分:0)
120px