Hoe kan ik AJAX-gegevens voor een SelectList in WebForms formatteren?

Ik vul een SelectList met gegevens die terugkomen van een AJAX-aanroep. De gegevens verschijnen echter als één item met een erg lange naam in plaats van enkele tientallen items met korte namen. Ik krijg "ABC DEF GHI JKL MNO" in plaats van "ABC", "DEF", "GHI", enz. Dus mijn SelectList krijgt slechts één item gekoppeld met een lange naam.

Als ik mijn geretourneerde gegevens in een foutopsporingsprogramma bekijk, zie ik de korte waarden naar wens op afzonderlijke regels verschijnen.

Ik heb geprobeerd "html" in plaats van "json" te gebruiken voor het return-type, maar dat had geen effect.

Hier is mijn server-side code:

private void GetItems(HttpContext context, int myID) 
{
    DataTable datatable = GetMyItems(myID);

    foreach (DataRow myRow in datatable.Rows)
    {
        Response.Write(myRow["ColumnName"].ToString() + Environment.NewLine);
    }
    Response.End();
}

En JavaScript ...

$.ajax({
    url: "../myAjaxPage.aspx?myID=" + myID,
    type: 'POST',
    datatype: 'json',

    success: function (data) {
        $("
0
U retourneert JSON of HTML niet echt van GetItems . data </​​code> is slechts één lange reeks, en met die ene lange reeks, maakt u slechts één
toegevoegd de auteur millimoose, de bron

2 antwoord

Je geeft JSON niet terug, je geeft alleen een string terug. Maar dat is prima. Splits de string gewoon en herhaal de resulterende array.

success: function (data) {
    $.each (data.split("\n"), function() {
        $("
2
toegevoegd

Kun je een object als een array retourneren in plaats van een string? Ik denk dat de newlines genegeerd worden in de ajax. Je kunt een $. Each (data) doen als ze zijn opgeslagen in een array-object, en dat is wat ik denk dat je probeert te doen

1
toegevoegd