думаю все сталкивались с ситуацией когда нужно по некому действию вызвать 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();
}
Здравствуйте, Аноним, Вы писали:
А>Есть ли более удобный способ генерации html, например создаем ascx контрол, в нем описываем html и логику раздельно как это принято в ASP.net, затем например в WebMethod вызваем генерацию этого контрола , например что-то в таком духе :
Правильный способ — использование cient-side template-ов, например
http://api.jquery.com/jquery.tmpl/