将List转换为JSON以填充表

时间:2015-07-04 18:30:15

标签: c# mysql asp.net json

我有一个带有表格的aspx文件。

<table class="table .table-condensed table-bordered table-hover">
    <thead>
        <tr>
            <th>Row</th>
            <th>Full Name</th>
            <th>Admin ID</th>
            <th>Password</th>
            <th>E-mail</th>
            <th>Contact No</th>
            <th>&nbsp;</th>
        </tr>
    </thead>
     </table>
<script>
jQuery(window).load(function () {
    getAdministrator();
});

function getAdministrator() {
    $('#panelContainer').removeClass('panel-danger');
    $.ajax({
        type: "POST",
        url: "ADMAdminManagement.aspx/GetAllAdministrator",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        beforeSend: function () {...
};
</script>

我有一个AdministratorManager.cs文件,其中包含以下代码,以便从MySql获取数据并创建一个列表。我试图使用这些信息使用AJAX Post方法填充我的表格。

public List<Administrator> getAllAdministrator()
    {
        SqlCommand cmd = new SqlCommand();
        SqlConnection cn = new SqlConnection();
        SqlDataAdapter da = new SqlDataAdapter();
        DataSet ds = new DataSet();
        List<Administrator> administratorList = new List<Administrator>();
        da.SelectCommand = cmd;
        cn.ConnectionString =
            ConfigurationManager.ConnectionStrings["WebaConnectionString"].ToString();
        cmd.Connection = cn;
        cmd.CommandText = "SELECT SystemUserId,UserId,Password,FullName,Email,ContactNo,DateOfBirth FROM SystemUser";
        cn.Open();
        da.Fill(ds, "AdministratorData");
        cn.Close();
        foreach (DataRow dr in ds.Tables["AdministratorData"].Rows)
        {
            Administrator administrator = new Administrator();
            administrator.SystemUserId = Int32.Parse(dr["SystemUserId"].ToString());
            administrator.UserId = dr["UserId"].ToString();
            administrator.Password = dr["Password"].ToString();
            administrator.FullName = dr["FullName"].ToString();
            administrator.Email = dr["Email"].ToString();
            administrator.ContactNo = dr["ContactNo"].ToString();
            administrator.DateOfBirth = DateTime.Parse(dr["DateOfBirth"].ToString());
            administratorList.Add(administrator);
        }
        return administratorList;
    }

我设法获取在我的cs文件中生成的列表,并将我的webform文件后面的代码转发到我的代码。我想知道如何返回这些数据并将其发送到我的webform。从我听说过我必须将其转换为JSON格式,但我似乎无法。

[WebMethod]
    public static object GetAllAdministrator()
    {
            AdministratorManager administratorManager = new AdministratorManager();
            List<Administrator> adminList = administratorManager.getAllAdministrator();   

    }

1 个答案:

答案 0 :(得分:0)

您可以使用JavascriptSerializerusing System.Web.Script.Serialization,它将序列化和反序列化方法转换为json,反之亦然。

在你的情况下,你必须这样做:

JavaScriptSerializer obj= new JavaScriptSerializer();
string output = obj.Serialize(adminList);

输出是一个json字符串,您的webmethod将其作为响应收到。