2009-03-26 14 views
5

JQueryUIのdatepickerを使用するように設定されたHtml.TextBoxを含むASP.NET MVCパーシャルビューがあります。これは、スタイルが.datepickerに設定されていることを確認することによって行われます。これはすべてうまくいきました。しかし、私はフォームをAjax.BeginFormに変更し、リンクをクリックした後にAjax.ActionLinkを表示しました。これを追加すると、datepickerは表示されません。実際には以前は動作していたJavaScriptは、コントローラからの部分ビューを返した後に呼び出されることさえありません。 JavaScript/JQueryをパーシャルビューでプットしても、それはまだ使用されません。私は本当に混乱している、誰かが助けてくれる? clickonは、コントローラのアクションがPartialViewを返すために呼び出すときASP.NET MVC jQueryUIのdatePickerがAJAX.BeginFormを使用していると動作しない

<div id="claims"> 
     <div id="divViewClaims"> 
      <% Html.RenderPartial("ViewClaim", Model.Claims ?? null); %> 
     </div> 
     <br /><br /> 
     <div id="claim"> 
      <% Html.RenderPartial("AddEditClaim", new Claim()); %>   
     </div> 
    </div> 

アクションリンクの下に表示

例としては、JavaScriptが以前にdocument.ready関数によってフックアップされたことを、ONSUCCESS火災が、何も上と呼ばれます。私のすべてのスクリプトは、別々のファイルにあり、マスターページで参照されます。私はこの上の任意の助けに感謝日付ピッカー

<% var ajaxOptions = new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divViewClaims", InsertionMode = InsertionMode.Replace, OnSuccess="hideAddClaim" }; %> 
     <% using (Ajax.BeginForm("AddEditClaim", "Claim", ajaxOptions, new { @name = "ClaimControl", @id = "ClaimControl" })) 
      { %> 

    <fieldset> 
     <legend><%= Model.Id==0?"Add":"Edit" %> Claim</legend> 
     <p> 
      <label for="Title">Claim Date</label> 
      <%= Html.TextBox("Date", Model.Date.ToString().TrimEnd('0', ':', ' ') ?? "", new { @class = "datepicker" })%> 
     </p> 

に設定されたスタイルを持つテキストボックスを示し

<%= Ajax.ActionLink(string.Format("Add A{0} Claim", Model.Count > 0 ? "nother" : string.Empty), "AddClaim", "Driver", new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "claim", OnSuccess="showAddClaim" }, new { @class = "ControlLink" })%> 

コントローラーアクション

public ActionResult AddClaim() 
{ 
     return PartialView("AddEditClaim", new Claim()); 
} 

パーシャルビュー、。

答えて

3

document.readyの後に要素が作成された場合は、要素をjQueryに再一致させる必要があります。

は、私の作品は何アウトjQuery Live

+0

より詳細な例を提供してください。 – Nario

+0

私はNarioに同意します。このような参照を持つのは良いことですが、明確な例がある方がはるかに良いです。 –

1

チェックがAjaxOptionsからOnSuccessプロパティを使用することです。だから、あなたのコードは次のように考えられます。

the_javascript_functionがこれを行う関数の名前です
using (Ajax.BeginForm("AddEditClaim", "Claim", ajaxOptions, new { @name = "ClaimControl", @id = "ClaimControl", OnSuccess="the_javascript_function_below" }) 

$(".datepicker").datepicker(); 
+0

私は現在、まったく同じことをやろうとしています。 jqueryは置換されたdivのテキストボックスを見つけられないようです。この上の任意のリード? –

関連する問題