2016-08-09 28 views
1

WebGrid(ユーザが選択できるオプションのリスト)とBeginForm(選択された値が設定され、ポストが作成されている場所)が部分的に表示されます。WebGridをページングした後にスクリプトが機能しなくなる

@model BTGHRM.Models.HarmingFactorsModel 

@{ 
    var db = new HRMEntities(); 
    WebGrid grid = new WebGrid(db.CatalogHarmingFactors, canPage: true, canSort: false, rowsPerPage: 5, ajaxUpdateContainerId: "deploymentsGrid1"); 
} 


<div id="deploymentsGrid1"> 
    @if (db.CatalogHarmingFactors.Any()) 
    { 
     @grid.GetHtml(
     tableStyle: "table", 
     headerStyle: "table_HeaderStyle", 
     footerStyle: "table_PagerStyle", 
     rowStyle: "table_RowStyle", 
     alternatingRowStyle: "table_AlternatingRowStyle", 
     selectedRowStyle: "table_SelectedRowStyle", 
     columns: grid.Columns(

      grid.Column("Nr", @Resources.Localization.nr, format: @<text> 
       @item.Nr 
      </text>, style: "p20"), 

      grid.Column("Description", @Resources.Localization.description, format: @<text> 
       @item.Description 
      </text>, style: "p70"), 


      grid.Column("", "", format: @<text>    
       <input id="select_bttnn" class="select_bttn" style="width:78px" type="button" [email protected] data-nr="@item.Nr" data-description="@item.Description" /> 
      </text>) 
       ) 
      ) 
          } 
</div> 

<br /> 

<div class="container"> 

    @using (Html.BeginForm("AddHarmingFactorToList", "Health", FormMethod.Post)) 
    { 
     @Html.HiddenFor(m => m.EmployeeId) 

     @Html.TextBoxFor(m => m.Nr, Model.Nr, new { style = "width:20%", id = "Number1" }) 
     @Html.TextBoxFor(m => m.Description, Model.Description, new { style = "width:70%", id = "Desc1" }) 
     <br /> 
      <br /> 
       @Html.LabelFor(m => m.Start_date) 
       @Html.TextBoxFor(m => m.Start_date, new { id = "datepicker", style = "width:25%" }) 
       @Html.LabelFor(m => m.End_date) 
       @Html.TextBoxFor(m => m.End_date, new { id = "datepicker2", style = "width:25%" }) 

       <br /><br /> 
       <input type="submit" value="@Resources.Localization.save" style="width:78px" /> 
    } 
    <button id="closer">@Resources.Localization.back</button> 
</div> 

と方法:

public PartialViewResult _GetHarmingFactorPartial() 
    { 
     int userId = GetUserId("s"); 
     BTGHRM.Models.HarmingFactorsModel newHarmingFactor = new BTGHRM.Models.HarmingFactorsModel(); 
     newHarmingFactor.EmployeeId = userId; 
     return PartialView("Partial/_HarmingFactorPopUp", newHarmingFactor); 
    } 
>

PartailView(モーダル) - 私は私のコードをこのように書くように言われたようにして私は、私のモーダルウィンドウがページング後に閉じた問題がありましたそのようなメインビューに呼び出された

@Html.Action("_GetHarmingFactorPartial", "Health") 

今ページングが全体のモーダルを閉じ、ユーザCはありませんボタンを押すと、計画どおりに値がbeginFormフィールドに設定されます。しかし、私のメインビューにネストされているページングスクリプトでは、動作が停止し、sellect_buttonは何もしません。私はすべての場所にスクリプトを置こうとしましたが、セクションスクリプトやページの最初の部分であっても動作しません。だからここ

はスクリプトです:

<script type="text/javascript"> 
    $(function() { 
     $("#dialog").dialog({ 
      autoOpen: false, 
      height: 400, 
      width: 600, 
      scrollable: false, 
      show: { 
       effect: "blind", 
       duration: 1000 
      } 
     }); 
    }); 

    $(function() { 
     $(".select_bttn").click(function() { 
      var nr = $(this).data('nr'); 
      var description = $(this).data('description'); 

      $("#Number").val(nr); 
      $("#Desc").val(description); 
     }); 
    }); 
</script> 

私はその問題を解決する可能性がどのように?

答えて

2

以下のコードを使用して、ボタンのクリックイベントのロジックを置き換えます

$("body").on('click', '.select_bttn', function() { 
    alert("Click fired"); 
    var nr = $(this).data('nr'); 
    var description = $(this).data('description'); 

    $("#Number").val(nr); 
    $("#Desc").val(description); 
}); 
関連する問題