2012-07-04 202 views
0

我正在開發使用VS2010,C#的ASP.NET Web應用程序。我有一個包含在我的主頁面中的用戶控件,現在我要從內容頁面訪問我的用戶控件,是否可以通過內容頁面客戶端事件更改用戶控件?我要去防止任何回發ASP.NET從內容頁面更改masterpage usercontrol

我想模擬像這樣的網站:

http://www.just-eat.co.uk/restaurants-dialacrate-w13/menu 

當我的客戶點擊食物,食物應被添加到我的訂單籃沒有任何回傳,我覺得它使用的是JavaScript,對吧?

+1

是JavaScript的。改變用戶控制也是可能的。但是,如果這是您在我們提供的URL中所需的功能,那麼您應該着手研究JavaScript和jQuery。 編輯:順便說一下,當我遇到感興趣的網站時,我所做的第一件事就是查看源代碼!並嘗試從那裏學習。打開.js文件和調查等... –

+0

謝謝艾敏,是的,我知道它是JavaScript,我沒有問題,使用JavaScript動態地創建控件在我的用戶控件,但我要學習如何建立連接我的內容頁面超鏈接和我的用戶控件?我如何從我的內容頁面訪問用戶控件?這是我的主要問題 –

回答

1

我說具體到你在你的問題給了URL more info更多信息:如果您調查的代碼,在HTML部分的筐部是:

<div id="divBasketHeaderContent"> 
    <h4> 
     <span id="ctl00_DesktopSideColumn_Basket_lblTxt">Your order</span> 
    </h4> 
</div> 

然後,在bundle.js中;

function updateBasket(n, t, i) { 
    document.getElementById("ctl00_DesktopSideColumn_Basket_modalProductId").value = n; 
    var r = n + "#" + t + "#" + i + "#"; 
    __doPostBack("ctl00_DesktopSideColumn_Basket_UpdatePanel1", r) 
} 

所以,他正在使用和asp.net updatepanel來更新購物籃。雖然這很好,但並不建議像在後臺一樣發送整個頁面並返回大量數據。See here明白爲什麼..

同樣在我提供的Encosia鏈接中,您將會看到如何正確完成的方式之一。

您可以使用page methodsweb servicesplain ajaxweb api達到你需要什麼..

1

您可以使用此

YouControl uc = (YouControl)Page.Master.FindControl("yourcontrolID"); 

以訪問您的UC放置在你的母版頁。

並使用webservices/webmethods無需任何回發即可完成。

對web服務Go here

對webMethods的Go here

+0

謝謝,我可以在JavaScript函數中使用這種方法嗎?即是否可以編寫執行這些操作的JS函數? –

+0

您可以但是維護這些控件的狀態會很棘手,因爲當您使用客戶端代碼執行任何操作時,那些更改不會在頁面回發期間自我保留。 – yogi

相關問題