Je travaille sur jquery pour obtenir des données lier à la liste déroulante & aussi j'ai utilisé la méthode de service web, et c'est très bien, mais je ne reçois pas de clarification. une liste déroulante J'obtiens des données de la méthode web qui retourne les objets To Array et pour une autre dropdownlist j'obtiens des données de la méthode web qui retourne en termes d'objet JSON, mais au début je ne vois pas de différence. la plupart d'entre eux disant sérielle json bonne méthode pour travailler, alors qu'est-ce qui se passe réellement ici? Je confonds peu s'il vous plaît aidez-moi merciComprendre la différence entre ToArray et JSON
**here is my code**
Default.aspx
<html>
<head runat="server">
<title>JsonAndToArray</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
ddlActivityType = document.getElementById("<%=ddlActivity.ClientID %>");
$.ajax({
type: "POST",
contentType: "application/json;charset/utf-8",
url: "Visit.asmx/GetActivityByJSON",
dataType: "json",
success: function(results) {
results = eval(results.d);
$('#ddlActivity').get(0).options.length = 0;
$('#ddlActivity').get(0).options[0] = new Option(' --select-- ', '0');
$.each(results, function(val, text) {
$('#ddlActivity').append($('<option></option>').val(text[1]).html(text[0]));
});
}
});
ddlActivityType1 = document.getElementById("<%=ddlActivity2.ClientID %>");
$.ajax({
type: "POST",
contentType: "application/json;charset/utf-8",
url: "Visit.asmx/GetActivity",
dataType: "json",
success: function(results) {
results = eval(results.d);
$('#ddlActivity2').get(0).options.length = 0;
$('#ddlActivity2').get(0).options[0] = new Option('--select--', '0');
$.each(results, function(val, text) {
$('#ddlActivity2').append($('<option></option>').val(text[1]).html(text[0]));
});
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
Json-Activity :
<select id="ddlActivity" runat="server">
</select>
<br />
<br />
ToArray-Activity :
<select id="ddlActivity2" runat="server">
</select>
<br />
<br />
<asp:Button ID="btnJson" runat="server" Text="Json" OnClick="Json_click"/>
</form>
</body>
</html>
Defalut.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.Script.Serialization;
public partial class Defalut: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Json_click(object sender,EventArgs e)
{
}
}
**webservices**
**
- Visit.asmx
**
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Data.SqlClient;
using System.Web.Script.Serialization;
using Facade;
/// <summary>
/// Summary description for Visit
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class Visit : System.Web.Services.WebService
{
public Visit()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public IList<string[]> GetActivity()
{
IList<string[]> values = new List<string[]>();
//string value = "";
try
{
SqlConnection con_New = new SqlConnection(@"Data Source=SQLEXPRESS;Initial Catalog="Database";Integrated Security=True;");
con_New.Open();
SqlCommand cmdSelect_ST = new SqlCommand("select id,name from table", con_New);
SqlDataAdapter da_ST = new SqlDataAdapter(cmdSelect_ST);
DataSet ds = new DataSet();
da_ST.Fill(ds);
DataTable dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
string[] ActivityType = new string[2];
ActivityType[0] = dt.Rows[i]["name"].ToString();
ActivityType[1] = dt.Rows[i]["id"].ToString();
values.Add(ActivityType);
}
}
catch (Exception ex)
{
}
return values;
}
[WebMethod]
public string GetActivityByJSON()
{
IList<string[]> values = new List<string[]>();
string value = "";
try
{
SqlConnection con_New = new SqlConnection(@"Data Source=SQLEXPRESS;Initial Catalog="Database";Integrated Security=True;");
con_New.Open();
SqlCommand cmdSelect_ST = new SqlCommand("select name,id from table", con_New);
SqlDataAdapter da_ST = new SqlDataAdapter(cmdSelect_ST);
DataSet ds = new DataSet();
da_ST.Fill(ds);
DataTable dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
string[] ActivityType = new string[2];
ActivityType[0] = dt.Rows[i]["name"].ToString();
ActivityType[1] = dt.Rows[i]["id"].ToString();
values.Add(ActivityType);
}
JavaScriptSerializer js = new JavaScriptSerializer();
value = js.Serialize(values);
}
catch (Exception ex)
{
}
return value;
}
}
alors il n'y a aucun besoin essentiel de faire json serialize et de renvoyer au front end et nous pouvons utiliser To Array à la place de cela, est-ce correct que j'ai compris? –
umm ... en quelque sorte. Le système effectuera la sérialisation json pour vous. Le 'ToArray()' n'est pas à la place de quoi que ce soit. – Hogan
oh ... comme ça, je vous remercie –