2013-04-16 42 views
1

我試圖用umbraco(在一個masterpage中)更新一個剃刀宏指令。我正在做的是使用ajax請求具有特定信息的Web服務,獲取答案,並且想要更新Razorscript中呈現的HTML以及從ajax請求到web服務的更新答案。在JavaScript內,我嘗試部分回發updatepanel的異步更新。用<asp:UpdatePanel>更新<umbraco:macro>

我有以下代碼

母版:

<asp:ScriptManager runat="server" ID="ScriptManager"/> 
<asp:UpdatePanel runat="server" ID="UpdatePanel1"> 
    <ContentTemplate> 
     <umbraco:Macro Alias="Macro1" runat="server"></umbraco:Macro> 
    </ContentTemplate> 
</asp:UpdatePanel> 

的Javascript:

$__doPostBack('UpdatePanel1', ''); 

首先,是不是真的能夠管理呢?我可以從JavaScript到達UpdatePanel嗎?其次,這是做這件事的最好方法嗎?如果沒有,我可以更有效地做到這一點。

編輯:

代碼爲Ajax請求:

$.ajax({ 
    type: "POST", 
    cache: false, 
    url: "/Handlers/Handler.ashx", 
    data: jsonData, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function() { 

     //Here i want to update the UpdatePanel, if possible 
     }, 

     error: function() { 

     } 
    }); 

問候 大衛

+0

您可以添加您用來向web服務發出ajax請求的代碼嗎? –

+0

是的,我已經編輯帖子與處理程序的請求的代碼。處理程序本身正在請求web服務。 –

+0

獲取正在返回的數據樣本以及要更新的HTML樣本太麻煩了,那麼我們可以給你一個更好的例子來說明如何處理它。 –

回答

0

如果你已經在使用Web服務,然後在回調的javascript直接更新HTML的ajax請求。 jQuery在這方面做得很好,但取決於複雜程度,您可能希望使用提供某種模板的框架,如Knockout,Handlebars.jsmustacheEmber.js

更新面板很方便,但我不認爲可以按照您嘗試的方式使用它們。 ASP.Net控件和剃鬚刀混合不好。

+0

沒錯,我明白你的觀點,只是需要用javascript呈現那麼多的字段,我們已經考慮過這個解決方案。當然,這是一種可能性,但它是一個很多工作的地獄,因此這篇文章如果可以用UpdatePanel更新(渲染)宏 –

1

通過在每次web服務請求後重新加載頁面來暫時解決它。仍然想知道是否有可能通過將其放入UpdatePanel並將其調用來更新宏。

相關問題