0

VS2010、C#を使用してASP.NETWebアプリを開発しています。マスターページにユーザーコントロールが含まれていますが、コンテンツページからユーザーコントロールにアクセスしますが、コンテンツページのクライアント側のイベントを介してユーザーコントロールを変更することはできますか?ポストバックを防ぐつもりです

このサイトのようなものをシミュレートしたい:

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

顧客が食べ物をクリックすると、ポストバックなしで注文バスケットに食べ物を追加する必要があります。JavaScriptを使用していると思いますよね?

4

2 に答える 2

1

あなたはこれを使うことができます

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

マスターページに配置されたUCにアクセスします。

そして、webservices / webmethodsを使用して、ポストバックなしでそれを実行します。

Webサービスの詳細については、こちらをご覧ください

webmethodsの詳細については、こちらをご覧ください

于 2012-07-04T05:52:12.453 に答える
1

私はあなたがあなたの質問で与えたURLに固有に話している:あなたがコードを調査するならば、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.netupdatepanelを使用してバスケットを更新しています。これは問題ありませんが、バックグラウンドのように、ページ全体を送信して大量のデータを返すため、お勧めしません。理由については、こちらをご覧ください。

また、私が提供したEncosiaリンクでは、これが適切に行われる方法の1つを見ることができます。

ページメソッドWebサービスプレーンajax、またはWeb APIのいずれかを使用して、必要なものを実現できます。

于 2012-07-04T06:07:18.070 に答える