2011-01-25 2 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> 

난 내 컨트롤러에이를 호출해야합니다. 내 컨트롤러) (...

<% 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"; { %> < % using (Html.BeginForm ("Provide", "Provide", "Emp", new {}, ajaxOption, new {id = "EmpForm"}))을 사용하여 (Ajax.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"]; %>

<% 경우 (! 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 옵션을 포함합니다. 해당 기능에서 진행률 표시 줄을 업데이트 할 수 있습니다.

Here is an example 방법 Ajax.BeginForm

나는이 방법 적절한 솔루션을 구현하는 아이디어를 줄 수 있기를 바랍니다

를 사용합니다.

+0

당신이 이해 한 바가 정확합니다. 첫 번째 솔루션에서 진행률 표시 줄 스크립트는 어디에서 호출해야합니까? 정교한 ... – RobinHood

+0

위 소스 코드에서 내 아약스 관련 부분을 업데이트했습니다 .. – RobinHood

+0

OnSuccess가 정의되어 있습니다. 괄호없이 함수를 배치해야합니다. http://stackoverflow.com/questions/695729/assign-a-javascript-function-to-ajaxoptions-onsuccess-property-raise-an-error-a – Tx3

2

코드 숨김은 서버에서 실행됩니다. 실행될 때 페이지가 아직 사용자에게 전달되지 않았으며 해당 브라우저에서 렌더링되지 않았습니다.

이는 클라이언트에서만 실행되기 때문에 jQuery 코드에 액세스 할 수없는 경우이를 의미합니다.

실행할 수 있더라도 document.getElementById은 아직 렌더링되지 않은 웹 페이지에서 요소를 가져 오기 때문에 사용할 수 없습니다.

+0

감사합니다.하지만 내가 원하는 것은 진행률 표시 줄 개념입니다. 일단 데이터를 저장하면 진행률 표시 줄이 사라집니다. 같은 페이지에 진행률 표시 줄을 유지하고 싶습니다 ... "위의 코드를 업데이트했습니다." – RobinHood