рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = "рдЯреЗрдХреНрд╕реНрдЯ" рддрддреНрд╡ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдкрд░рд┐рдЪрдп


рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреНрд▓рдЧ-рдЗрди рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ (рд╕реМрднрд╛рдЧреНрдп рд╕реЗ?) рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА (рд╢рд╛рдпрдж рдореИрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛?), рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рд╕рдВрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред

рд╡рд┐рдЪрд╛рд░


рддрддреНрд╡ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реЗрдВред рдХреЗрд╡рд▓ рдорд╛рд░реНрдХрдЕрдк рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ред рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЛ рдПрдХ рдорд╛рдирдХ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред
рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
<input id="comboBox" data-options='{"url":"Home/Load","lengthText": 4,"timeWait":300 }' type="text" />  <input id="comboBox1" data-url="Home/Load" type="text" /> 

рдЬрд╣рд╛рдВ:
url - рд╕реЗрд╡рд╛ рдХрд╛ рдкрддрд╛
рд▓рдВрдмрд╛рдИ-рд╡рд░реНрдгреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 3)
рдЯрд╛рдЗрдорд╡рд┐рдЯ - рдПрдордПрд╕ рдореЗрдВ рд╕рдордп рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 300)

рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред

query_start - рдПрдХ рдХреНрд╡реЗрд░реА рд╢реБрд░реВ рдХрд░реЗрдВ
query_end - рдХреНрд╡реЗрд░реА рдХрд╛ рдЕрдВрдд
query_data - рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
query_reset - рдкрд░рд┐рдгрд╛рдо рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
query_error - рдХреНрд╡реЗрд░реА рддреНрд░реБрдЯрд┐

рд╕рдм рдХреБрдЫ jQuery рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ (v 1.7) - рдХреНрд╡реЗрд░реА ()
 $().ready(function () { $("#comboBox") .query() .bind("query_data", function (e, data) { //     тАУ   <div id=тАЭpanelтАЭ/> }) .bind("query_error", function (e, data) { //    }) .bind("query_reset", function () { //  <div id=тАЭpanelтАЭ/> }) .bind('query_start query_end', function (e) { //       тАУ     $(this).css({ backgroundColor: e.type == "query_start" ? "#fdf5e6" : "#FFF" }); }); }); 


рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


 (function ($) { function query(target) { this.$target = $(target); //   this.options = this.$target.data('options') || { url: this.$target.data("url") }; if (!this.options.url) //  url -    throw Error(" ..."); //    this.options = $.extend({ lengthText: 3, timeWait: 300 }, this.options); }; query.prototype = { handler: function (val) { //            if(this.def ) this.def.abort() ; if (val.length < this.options.lengthText) { //     this.$target.trigger('query_reset'); return; }; var self = this; //         timeWait clearTimeout(this.timer); //    c  timeWait this.timer = setTimeout(function () { self._ajax(val); }, this.options.timeWait); }, _ajax: function (val) { var self = this; this.$target.trigger('query_start');//   this.def = $.get(this.options.url, { val: val }) //    .done(function (data) { self.$target.trigger('query_data', [data]); }) .error(function (data) { self.$target.trigger('query_error', [data]); }) //  .always(function () { self.$target.trigger('query_end'); }); //   } }; $.fn.query = function () { this.each(function () { $(this) .data("query", new query(this)) //        .bind('keyup', function (e) { //         $(this).data("query").handler($(this).val()); }); }); return this; }; } (jQuery)); 

рдЕрдВрдд рдореЗрдВ, рдореИрдВ ASP.NET MVC рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдХреЛрдб рджреВрдВрдЧрд╛ред
Json рдпрд╣рд╛рдБ рд▓реМрдЯрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рднреА рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЖрдВрд╢рд┐рдХ рджреГрд╢реНрдп рдореЗрдВ html рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

  public ActionResult Load(string val) { var data = new { id=1, name="..."}; //   .     val //throw new Exception("Error", null); //System.Threading.Thread.Sleep(1000); return Json(data, JsonRequestBehavior.AllowGet); } 


ASR.NET MVC3 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдпрд╣рд╛рдВ

Source: https://habr.com/ru/post/In140225/


All Articles