2012-02-14 69 views
0

我有一个剃刀网页,其中包含一个表和局部视图源作为List //(Model.LeaveTypeList)剃刀(使用局部视图)特定刷新

      @using (Html.BeginForm()) 
          {   
           <table> 

            @*Grid Added as Partial View for leave Types*@ 
            <tr> 
             <td colspan="2"> 
              <div> 
               @Html.Partial("LeaveTypesPartial", Model.LeaveTypeList) 
              </div> 

             </td> 
            </tr> 

           </table> 

          } 

这是局部视图(LeaveTypesPartial。 CSHTML)

      @model List<AscoraWeb.Models.LeaveTypeModel> 
          @{ 

           Layout = null; 
          } 
          @{   

           //canSort:false, 

           var grid = new WebGrid(source: Model, 
              defaultSort: "Name", 
              rowsPerPage: 7); 
          } 
           <table> 
           <tr> 
             <td colspan="2" style="text-align: left; font-family: Arial Baltic; font-style: italic;font-size: 15px"> 
              These leaves can be assigned to Employees in the Service Calender for scheduling 
             </td> 

             <td colspan="2" style="text-align: left; font-family: Arial Baltic; font-style: italic;font-size: 15px"> 
             </td> 
            </tr> 

            @*Row with buttons*@ 
            <tr> 
             <td align="right" colspan="1"> 
              <input type="button"/> 
              <input type="button"/> 
             </td> 

            </tr> 

            <tr> 
             <td> 
             <div id="grid"> 
              @grid.GetHtml(
               tableStyle: "grid", 
               headerStyle: "head", 
               alternatingRowStyle: "alt", 
               columns: grid.Columns(
                grid.Column("name") 
                ) 
             ) 
             </div> 

             </td> 
            </tr> 
           </table> 

在应用控制器我们正在分配一些值的局部视图

       public ActionResult RatesAndCharges() 
           { 
            //Message that will appear before the content of the view is shown 
            ViewBag.Message = "This is the Rates and Charges section!"; 



            //Adding content for the leave types grid 
            var ratesChargesModel = new RatesChargesModel { }; 

            ratesChargesModel.LeaveTypeList = new List<LeaveTypeModel>(); 

            var leaveTypeModel = new LeaveTypeModel { Name = "Paid Leave" }; 

            ratesChargesModel.LeaveTypeList.Add(leaveTypeModel); 

            leaveTypeModel = new LeaveTypeModel { Name = "Unpaid Leave" }; 

            ratesChargesModel.LeaveTypeList.Add(leaveTypeModel); 

            return View(ratesChargesModel); 
           } 

钍是工作正常,我可以看到我的网格与元素

网格元素可以按名称排序(因为我们有默认排序:名称) 但是当我们点击名称整个页面得到刷新(正在打电话给public ActionResult RatesAndCharges()) 因此,我需要一种方法来排序网格中的元素,而不必刷新我的页面。

回答

0

你将不得不使用JQuery或其他东西向服务器发出AJAX请求......我不知道WebGrid是否支持这个请求。但是你总是可以自己做,通过使用JQuery来调用一个操作方法,该方法返回一个局部视图,并且将旧的HTML交换为新的。