Telerik MVC 3 网格选定行绑定到模型属性

发布于 2024-11-01 01:55:31 字数 3297 浏览 2 评论 0 原文

我的视图中有一个 Telerik 网格。我想知道是否有一种方法可以将所选行的 Datakey 绑定到模型属性 -

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site1.Master" Inherits="System.Web.Mvc.ViewPage<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>" %> 

<% 使用 (Html.BeginForm()) { %>

            <div class="editor-label">       
                <br />                        
               <label>Select Which Job:</label>
            </div>
            <div>
               <%= Html.Telerik().Grid((IEnumerable<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>)ViewData["JobFilesDataList"])
                        .Name("JobFileGrid")
                        .EnableCustomBinding(true)
                        //.BindTo((IEnumerable<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>)ViewData["JobFilesDataList"])
                        .DataKeys(keys => keys.Add(o => o.JobFileId))                       
                        .Columns(columns =>
                        {
                            columns.Bound(o => o.JobFileId).Hidden(true);
                            columns.Bound(o => o.JobFileName).Title("Job File Name").Width(500);
                            columns.Bound(o => o.JobFileVersion).Title("Job File Version").Width(200);
                            columns.Bound(o => o.JobFileDateCreated).Title("Date Created").Format("{0:MM/dd/yyyy}").Width(300);
                        })                            
                        .HtmlAttributes(new { style = "width: 1000px; font-family:arial; font-size: .9em;" })                           
                        .ClientEvents(events => events.OnRowSelected("onRowSelected"))
                        .DataBinding(dataBinding => dataBinding.Ajax().Select("SelectJobFile", "Admin"))                          
                        .Pageable()
                        .Sortable()
                        .Selectable() 
                        .RowAction(row =>
                        {
                            row.Selected = row.DataItem.JobFileId.Equals(ViewData["JobFileId"]);
                            //Model.JobFileId = ViewData["JobFileId"].ToString();
                        })                          
                 %>
               </div>
               <div>

               </div>
               <div>
                    <br />
                   <button type= "submit" name="button" class="t-button"  >Run Report</button>

               </div>

    </div>

    <% } %> 



enter code here


    <script type="text/javascript">

        function onRowSelected(e) {
            var id = e.row.cells[0].innerHTML;            
            alert(id);
        }

    </script>

我的模型是 -

  public class JobFileStatisticsModel
{
    public string JobFileId { get; set; }

    public string JobFileName { get; set; }

    public string JobFileVersion { get; set; }

    public string JobFileDateCreated { get; set; }
}

如何将网格中所选行的 Datakey 绑定到 Model.JobFileId 属性? 请帮忙。

谢谢, SDD

I have a Telerik Grid in my View. I want to know if there is a way by which I can bind the Datakey of the selected row to the Model Property -

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site1.Master" Inherits="System.Web.Mvc.ViewPage<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>" %> 

<% using (Html.BeginForm()) { %>

            <div class="editor-label">       
                <br />                        
               <label>Select Which Job:</label>
            </div>
            <div>
               <%= Html.Telerik().Grid((IEnumerable<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>)ViewData["JobFilesDataList"])
                        .Name("JobFileGrid")
                        .EnableCustomBinding(true)
                        //.BindTo((IEnumerable<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>)ViewData["JobFilesDataList"])
                        .DataKeys(keys => keys.Add(o => o.JobFileId))                       
                        .Columns(columns =>
                        {
                            columns.Bound(o => o.JobFileId).Hidden(true);
                            columns.Bound(o => o.JobFileName).Title("Job File Name").Width(500);
                            columns.Bound(o => o.JobFileVersion).Title("Job File Version").Width(200);
                            columns.Bound(o => o.JobFileDateCreated).Title("Date Created").Format("{0:MM/dd/yyyy}").Width(300);
                        })                            
                        .HtmlAttributes(new { style = "width: 1000px; font-family:arial; font-size: .9em;" })                           
                        .ClientEvents(events => events.OnRowSelected("onRowSelected"))
                        .DataBinding(dataBinding => dataBinding.Ajax().Select("SelectJobFile", "Admin"))                          
                        .Pageable()
                        .Sortable()
                        .Selectable() 
                        .RowAction(row =>
                        {
                            row.Selected = row.DataItem.JobFileId.Equals(ViewData["JobFileId"]);
                            //Model.JobFileId = ViewData["JobFileId"].ToString();
                        })                          
                 %>
               </div>
               <div>

               </div>
               <div>
                    <br />
                   <button type= "submit" name="button" class="t-button"  >Run Report</button>

               </div>

    </div>

    <% } %> 



enter code here


    <script type="text/javascript">

        function onRowSelected(e) {
            var id = e.row.cells[0].innerHTML;            
            alert(id);
        }

    </script>

My model is -

  public class JobFileStatisticsModel
{
    public string JobFileId { get; set; }

    public string JobFileName { get; set; }

    public string JobFileVersion { get; set; }

    public string JobFileDateCreated { get; set; }
}

How do I bind the Datakey of the selected row in the Grid to the Model.JobFileId property?
Please help.

Thanks,
SDD

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羁拥 2024-11-08 01:55:31

更改
>

也替换

<%= Html.Telerik().Grid((IEnumerable<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>)ViewData["JobFilesDataList"])

为这一行。
<%= Html.Telerik().Grid(Model)

如果您替换这两个,它应该可以解决您的问题。这就是我目前正在做的事情,所以我认为它会起作用。如果它不只是给我留言,我会看看我还能想出什么。

Change <Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>
to <IEnumerable<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>>

Also replace

<%= Html.Telerik().Grid((IEnumerable<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>)ViewData["JobFilesDataList"])

with this line.
<%= Html.Telerik().Grid<Mitek.MobileImagingTest3.Models.JobFileStatisticsModel>(Model)

If you replace both of those it should fix your problem. This is how I am currently doing it so I think it will work. If it doesn't just leave me a message and I will see what else I can come up with.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文