2012-02-20 3 views
0

У меня есть страница, которая подключается к базе данных Northwind, чтобы получить список категорий ...

protected void Page_Load(object sender, EventArgs e) 
    { 
     var cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnnString"].ConnectionString); 
     var cmd = new SqlCommand("SELECT CategoryID, CategoryName FROM Categories ORDER BY CategoryName", cnn); 
     using (cnn) 
     { 
      cnn.Open(); 
      var dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
      if (dr.HasRows) 
      { 
       var sb = new StringBuilder(); 
       var sw = new StringWriter(sb); 

       using (JsonWriter jw = new JsonTextWriter(sw)) 
       { 
        jw.Formatting = Formatting.Indented; 

        jw.WriteStartArray(); 
        while (dr.Read()) 
        { 
         jw.WriteStartObject(); 
         jw.WritePropertyName("CategoryID"); 
         jw.WriteValue(dr.GetInt32(0)); 
         jw.WritePropertyName("CategoryName"); 
         jw.WriteValue(dr.GetString(1)); 
         jw.WriteEndObject(); 
        } 
        jw.WriteEndArray(); 
        jw.Flush(); 
        Response.Write(sb); 
       } 
      } 
     } 
    } 

Это работает так же, как и ожидалось. На моей странице вызова у меня есть раскрывающийся список, и я пытаюсь использовать jQuery для его заполнения. Возможно, я делаю это неправильно. Я предполагаю, что он принимает весь текст из файла .aspx, который включает в себя строки и строки и вызывает его недопустимость? Если да, то каков правильный способ сделать это, или что я делаю неправильно?

$.getJSON('GetCategories.aspx', function (data) { 
     alert('success!'); 
     $.each(data, function (key, val) { 
      $('#ddlCategories').append('<option></option>').val(key).html(val); 
     }); 
    }); 

Предупреждение никогда не происходит, поэтому он дергает за получение файла. Имя файла верное, поскольку Chrome Inspector не дает мне никаких консольных ошибок.

+0

Можете ли вы опубликовать свое решение и пометить его как ответ? – Lalman

+0

Это было давно, я буду искать его позже и посмотреть, что это такое и опубликовать его. –

ответ

0

Вы должны заглянуть в HttpHandlers, так как они имеют намного более низкие накладные расходы и могут быть ограничены только выводом.

Я использую HttpHandler в качестве примера в другом ответе здесь Accessing Image from App_data folder

+0

Благодарим вас за предложение, я посмотрю его в другой раз, но просто попытаюсь узнать, как у меня здесь первое место. Итак, из этого примера, скажем, у меня есть div на моей странице GetCategories.aspx, я пишу JSON в ... с $ .getJSON() могу ли я захватить определенный элемент с страницы GetCategories.aspx? –

+0

Я получил это, чтобы работать. Я хорошо сейчас, спасибо за вашу помощь. –

+0

Не могли бы вы разместить свое решение и отметить его как ответ? –

Смежные вопросы