从aspx.cs页面获取数据到aspx页面

时间:2010-05-14 19:58:08

标签: asp.net jquery ajax datalist

所以我使用了一个jquery插件,允许我通过拖放来改变列表中的事物的顺序。 所以我的目标是能够获取我的对象列表(AlertInfo)并在javascript函数中使用它。 我能够在测试项目中使用json webservice调用将数据传递给页面。 但我们现在没有web服务页面所以我试图从aspx.cs页面抓取它并且它没有工作。

/// Aspx页面:

$.ajax({
   type: "POST",
   url: "~/Alerts/GetAlerts",
   data: "{}",
   contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        var data = eval("(" + msg.d + ")");
        jQuery.each(data, function (rec) {
        AlertList[AlertList.length] = new objAlert(this.id, this.title, this.details,               JSONDateSerializationFix(this.startdate), JSONDateSerializationFix(this.enddate));
        UpdateDisplayList();
     })
     },
     error: function (msg) {
        alert("BRAD" + msg);
     }

问题是“URL / Alerts / GetAlerts”中的“警报”页面是Alerts.aspx.cs。我无法弄清楚我是否可以使用这个ajax命令来调用aspx.cs页面中的方法 //代码隐藏页面aspx.cs

[WebMethod]
 //[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetAlerts()
{
  List<AlertInfo> list = AlertInfo.GetTestAlerts();
  return new JavaScriptSerializer().Serialize(list);
}

public List<AlertInfo> GetAlertsList()
{
  List<AlertInfo> list = AlertInfo.GetTestAlerts();
  return list; ;
}

所以我希望我可以将数据加载到asp控件(dataList)然后获取数据

//页面后面的代码

protected void Page_Load(object sender, EventArgs e)
{
    dataListAlertList.DataSource = GetAlertsList();
    dataListAlertList.DataBind();
}
public static List<AlertInfo> GetTestAlerts()
{
            List<AlertInfo> list = new List<AlertInfo>();
            list.Add(new AlertInfo("0", "Alert 1 Title", "Alert 1 Detail", "10/10/2010", "10/10/2011"));
            list.Add(new AlertInfo("1", "Alert 2 Title", "Alert 2 Detail", "10/10/2010", "10/10/2011"));
            return list;

}

// .aspx page

$(document).ready(function () {
    var a1 = $("#dataListAlertList").val();
    // do fun stuff now.
}

但我一直都没有定义......

1 个答案:

答案 0 :(得分:0)

不需要预加载。使用datalist结束,然后更改格式化方式。在文档就绪函数中,我抓住了div并应用了需要设置的属性。