2011-01-25 10 views
0

他のソリューションは、背後に私のコードからjQueryの関数を呼び出したい(すなわちコントローラから)...私のjQueryの機能は...ある- 私はMVC 2.Iで働いています

<script type="text/javascript"> 
$(function() { 
    var a = document.getElementById("HidStatus").value; 
    var b = parseInt(a); 
    $("#progressbar").progressbar({ 
     value: b, 
     max: 100 
    }); 
}); 

<div id="progressbar" style="height: 8px; float: left; padding: .3%; margin-right: 274px; 
         margin-left: 160px; width: 350px;"> 
        </div> 
        <div id="Div1" style="float: left; margin-left: 300px; margin-right: 100px; font-weight: bold"> 
         <%= Html.Hidden("HidStatus", (double)ViewData["StatusBar"])%> 
         <%= Html.Label("Status - " + Convert.ToString(ViewData["StatusBar"] + "% Completed"))%> 
        </div> 

私は私のコントローラでこれを呼び出す必要があります。私のコントローラは)これは私のAjax関連のパート...

<% AjaxOptions ajaxOptionは=新しいAjaxOptions(ある...

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult ProvideDetails(FormCollection formCollection) 
    {  
    //Here i should call the JQuery Function 
    return PartialView("Details", empDetails); 
    } 

ことウィル。 ajaxOption.UpdateTargetId = "TargetId"; 「(Ajax.BeginForm( "提供"、 "のEmp"、新しい{}、ajaxOption、新しい{ID = "EmpForm"}))> <% {%が使用して(Html.BeginForm( "提供" を用い Emp ")) {%>

<%CurrentFormMode currentMode = new CurrentFormMode(); if(ViewData ["FormMode"]!= null) currentMode =(CurrentFormMode)ViewData ["FormMode"]; %> <%EmpDetails empDetails = new EmpDetails(); if(ViewData.ContainsKey( "EmpDetails")) empDetails =(EmpDetails)ViewData ["EmpDetails"]; %>

<% IF(!string.IsNullOrEmpty(Html.CelloValidationMessage( "SuccessMessage"))) {%>

<%}%> <%}%>

これを行う方法....

答えて

0

私は正しく理解しています。ユーザーは何らかのアクションを実行しています。サーバー上で何かして、進行状況バーを更新して何かが起こったことをユーザーに知らせる必要があります。

あなたにはいくつかのオプションがあると思います。あなたはjQueryのを使用してコントローラのアクションを呼び出し、応答に応じてあなたのプログレスバーを更新する可能性がjQueryのポスト

を使用して

。プログレスバーの更新コールバック関数が '成功' に置かれる

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    success: success 
    dataType: dataType 
}); 

は、あなたが今PartialViewを使用しているようだAjax.BeginForm

を使用してjQuery API documentation

を参照してください(下記参照)。投稿が完了したときに呼び出される関数を提供できるように、Ajaxフォームを使用することができます。 Ajax.BeginFormには、Postが正常に完了したときに呼び出される関数を指定できるSuccessオプションが含まれています。その機能では、進行状況バーを更新することができます。私は、これは適切な解決策を実装する方法のアイデアを与えることを願っていますかAjax.BeginForm

を使用する

Here is an example

+0

あなたが理解していることは正しいです..あなたの最初の解決策では、私はプログレスバースクリプトをどこで呼びますか?詳細... – RobinHood

+0

私は上記の私のソースコードで私のajax関連部分を更新しました。 – RobinHood

+0

OnSuccessが定義されています。あなたはかっこなしでその場所に関数を置く必要があります。 http://stackoverflow.com/questions/695729/assign-a-javascript-function-to-ajaxoptions-onsuccess-property-raise-an-error-a – Tx3

2

コードビハインドはサーバー上で実行されます。実行されると、ページはまだユーザーに配信されておらず、ブラウザーでレンダリングされていません。

これは、jQueryコードがクライアント上でのみ実行されるため、jQueryコードにアクセスできない場合にこれを意味します。

実行可能であっても、まだレンダリングされていないWebページの要素を取得するため、document.getElementByIdを使用することはできません。

+0

ありがとうございます。しかし、私が欲しいのは、私はプログレスバーのコンセプトで働いています。データを保存すると、プログレスバーが消えます。私は同じページにプログレスバーを残したいと思います... "私は上記のコードを更新しました" – RobinHood

関連する問題