Ajax генерация html
От: Аноним  
Дата: 30.11.10 03:40
Оценка:
думаю все сталкивались с ситуацией когда нужно по некому действию вызвать WebMethod , который вернул бы данные и отобразить их клиенту.
Реализаций тут может быть много, например :
— html полностью формируется WebMethod и javascript только вставляет его внуть нужного элемента , чтото типа $('#target').html( webmethod_result );
( т.е. html прошивается в коде WebMethod что не есть хорошо )
— html формируется javascript , на основе данных которые возвращает WebMethod, т.е.
чтото типа function( webmethod_result ){ var html = '<table><tr><td>' + webmethod_result + '</td></tr></table>'

Есть ли более удобный способ генерации html, например создаем ascx контрол, в нем описываем html и логику раздельно как это принято в ASP.net, затем например в WebMethod вызваем генерацию этого контрола , например что-то в таком духе :



[WebMethod]
public string GetHtml( ... )
{
    var ajaxCtrl = new MyAjaxControl();
    return ajaxCtrl.GenerateHtml(); ///  хотелось бы что-то подобное
}




/// MyAjaxControl.ascx
<asp:Repeater ID="repeater" runat="server"> 
  ...
</asp:Repeater>

/// MyAjaxControl.ascx.cs

void Page_Load( .. )
{
   repeater.DataSource = getFromDB();
   repeater.DataBind();
}
Re: Ajax генерация html
От: Lloyd Россия  
Дата: 30.11.10 05:43
Оценка: 6 (1) +1
Здравствуйте, Аноним, Вы писали:

А>Есть ли более удобный способ генерации html, например создаем ascx контрол, в нем описываем html и логику раздельно как это принято в ASP.net, затем например в WebMethod вызваем генерацию этого контрола , например что-то в таком духе :


Правильный способ — использование cient-side template-ов, например http://api.jquery.com/jquery.tmpl/
Re: Ajax генерация html
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 10.12.10 21:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А><skipped>


ASP.NET MVC поддерживает такое из коробки (PartialView), можно заставить контрол отрендериться, положив его на пустую страницу — см. метод HttpContext.Current.Server.Execute.
[КУ] оккупировала армия.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.