Как передать данные JSON в текстовые поля Asp.net Ajax - PullRequest
0 голосов
/ 27 декабря 2018

Я получаю данные со страницы edit_retrun.aspx.Данные успешно возвращаются, я проверяю, что в alert(data.d); формате получилось похоже на ajax success, названный методом

[{"id":"464","fname":"dsf","age":"34"}]

, но когда я попытался передать данные в соответствующие текстовые поля, он не отобразил бы результат atext boxeses noошибки отображались.то, что я пробовал до сих пор, я прикрепил ниже.

это текстовое поле для передачи данных.

 $('#fname').val(data.fname);                        
 $('#age').val(data.age);

полный код Ajax

 $.ajax({
         type: 'POST',
         url: 'edit_return.aspx/doSome',
         dataType: 'JSON',
         data: "{id: '" + id + "'}",
         contentType: "application/json; charset=utf-8",
         success: function (data) {
         alert(data.d);    
         console.log(data.fname);
         $("html, body").animate({ scrollTop: 0 }, "slow");
         isNew = false       
         $('#fname').attr('value', data.fname);
         $('#fname').val(data.fname);                        
         $('#age').val(data.age);

        },

edit_retrun.aspx page

 [WebMethod]
public List<Employee> doSome(int id)
{
    SqlConnection con = new SqlConnection("server=.; Initial Catalog = jds; Integrated Security= true;");
    string sql = "select * from record where id='" + id + "'";
    SqlCommand cmd = new SqlCommand(sql, con);
    con.Open();
    cmd.ExecuteNonQuery();
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);
    List<Employee> employees = new List<Employee>();

    employees = dt.AsEnumerable()
            .Select(x => new Employee()
            {
                id = x.Field<int>("id").ToString(),
                fname = x.Field<string>("name"),
                age = x.Field<int>("age").ToString(),
            }).ToList();
    return employees;
}

Дизайн формы

<form  id="frmProject" runat="server">
        <div>
            <label class="form-label">First Name</label>     
           <input type="text" id="fname" name="fname" class="form-control"  required />

        </div>
        <div class="form-group" align="left">
         <label class="form-label">Age</label>
            <input type="text" id="age" name="age" class="form-control"  required />
        </div>
        <div> 
           <input type="button" id="b1" value="add" class="form-control" onclick="addProject()" />

        </div>      
    </form>

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Do

JSON.parse(data);

затем присвойте текстовым полям.

См. эту ссылку.

0 голосов
/ 27 декабря 2018

Как вы сказали, когда вы alert(data.d) это дает:

[{"id":"464","fname":"dsf","age":"34"}]

Используйте это:

$('#fname').attr('value', data.d[0].fname);

Рабочая демонстрация:

var d= [{"id":"464","fname":"dsf","age":"34"}]

$('#fname').attr('value', d[0].fname);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="fname">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...