2012-12-21 2 views
2

메일 목록을 표시하는 데 Kendo UI Grid를 사용하고 있습니다. 행을 클릭하면 행을 선택하고 이미있는 메일 개체의 편집기에서 메일 본문을 편집기에 표시해야합니다. 클라이언트 쪽. 그러나 선택한 행 값을 가져올 수 없습니다.KendoUI ASP MVC 모눈을 가져올 수 없습니다. 선택한 행 값

다음과
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MVC3toHTML5.Models.MailModel>" %> 

<!DOCTYPE html> 

<html> 
<head runat="server"> 
    <title>Index</title> 
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> 
    <link href="<%= Url.Content("/Content/web/kendo.common.min.css") %>" rel="stylesheet" type="text/css" /> 
    <link href="<%= Url.Content("/Content/web/kendo.rtl.min.css") %>" rel="stylesheet" type="text/css" /> 
    <link href="<%= Url.Content("/Content/web/kendo.default.min.css") %>" rel="stylesheet" type="text/css" /> 
    <link href="<%= Url.Content("/Content/shared/examples-offline.css") %>" rel="stylesheet" type="text/css" /> 
    <script src="<%: Url.Content("/Scripts/jquery-1.5.1.min.js") %>" type="text/javascript"></script> 
    <script src="<%: Url.Content("/Scripts/modernizr-1.7.min.js") %>" type="text/javascript"></script> 
     <script src="<%= Url.Content("/Scripts/jquery.min.js") %>"></script> 
    <script src="<%= Url.Content("/Scripts/kendo.web.min.js") %>"></script> 
    <script src="<%= Url.Content("/Scripts/kendo.aspnetmvc.min.js") %>"></script> 
    <script src="<%= Url.Content("/Scripts/console.min.js") %>"></script> 
    <script src="<%= Url.Content("/Scripts/prettify.min.js") %>"></script> 
</head> 
<body> 
    <div style="font-size:medium;"> 
     <%: Html.Kendo().Grid(Model.mailList) 
     .Name("Grid") 
     .Columns(columns => 
     { 
      columns.Bound(p => p.MailId).Width(200); 
      columns.Bound(p => p.From.Value).Width(200); 
      columns.Bound(p => p.Subject).Width(200); 

     }) 
         .Pageable() 
         .Sortable() 
         .Scrollable() 
         .Filterable() 
         .Groupable() 
         .DataSource(dataSource => dataSource 
          .Ajax() 
          .ServerOperation(false) 
             .Events(events => events.Change("Grid_OnRowSelectUID")) 

         ) 
    .Selectable() 
%> 
    </div> 
    <div style="margin-left:220px;"> 
    <% Html.Kendo().Editor() 
     .Name("Editor") 
     .HtmlAttributes(new { style = "width: 740px;height:440px;" }) 


     .Render(); 
%> 
<script type="text/javascript"> 
    function Grid_OnRowSelectUID() { 

     var dataSource = new kendo.data.DataSource({ 
      change: function (e) { 
       alert("datasource"); 
      } 
     }); 

     dataSource.bind("change", function (e) { 
      alert("Bind"); 
     }); 

    } 









</script> 
    </div> 
</body> 
</html> 

컨트롤러가 될 때 :

namespace MVC3toHTML5.Controllers 
{ 
    public class Home2Controller : Controller 
    { 
     public ActionResult Index() 
     { 
      MailModel mailModelobj = new MailModel(); 
      mailModelobj.GetMailList(); 
      return View(mailModelobj); 

     } 

    } 
} 

내가 웹 서비스에서 메일을 얻고 여기에

뷰 코드입니다. 그 올바른 방법은 무엇입니까?

답변

2

데이터 소스의 변경 이벤트가 아닌 change 이벤트를 사용하십시오.

<%: Html.Kendo().Grid(Model.mailList) 
    .Name("Grid") 
    .Selectable() 
    .Events(ev=>ev.Change("onSelectRow")) 
    //... 



    <script> 
     function onSelectRow(e){ 
      var currentSelectedItem = this.dataItem(this.select()); 
      alert(currentSelectedItem.SomeProp); 
      $('#Editor').data().kendoEditor.value(currentSelectedItem.SomeProp); 
     } 
    </script>