如何在MVC中从Kendo网格传递值到Kendo窗口

3
如何在网格按钮单击事件中将所选行的PreEmploymentId传递到窗口。这可能很简单,但我是新手,还在学习基础知识。
脚本-
<script>
    $("[data-button-type='auction']")
                .click(function(e) {
                    myWindow.data("kendoWindow").open();
                    myWindow.data("kendoWindow").center();
                    myWindow.data("kendoWindow").top();
                });
</script>

Kendo Grid-

<div >
@*Telerik grid*@
@{
    Html.Kendo().Grid(Model.LstPreEmploymentWorkflowModellist)
        .Name("MyGrid")
        .Columns(col =>
        {
            //on edir button click action name Main in invoked in PreEmploymentWorkflow controller and PreEmploymentId is passed
            col.Template(@<text>
                             @Html.ActionLink("Edit", "Main", "PreEmploymentWorkflow", new {Id = item.PreEmploymentId}, new {@class = "classname"})</text>).Width(30);
            col.Bound(o => o.PreEmploymentId).Visible(false).Groupable(false);
            col.Bound(o => o.FirstName).Width(30).Groupable(false);
            col.Template(@<text>
                             @Html.ActionLink("OpenFile", "Openfile", "PreEmploymentWorkflow", new {Id = item.PreEmploymentId, uploadfilename = "EEOC Tracking Form"}, new {@class = "classname3"})</text>).Title("EEOC").Width(30);
            col.Template(@<text>@(Html.Kendo().Button()
                                      .Name("open" + @item.PreEmploymentId)
                                      .ImageUrl(Url.Content("/images/auction_16.gif")).HtmlAttributes(new {type = "submit", data_button_type = "auction" })
                                      )
                          </text>).Width(40).Title("Status");
            col.Template(@<text>
                             @Html.ActionLink("Delete", "Delete", "PreEmploymentWorkflow", new {Id = item.PreEmploymentId}, new {@class = "classname2"})</text>).Width(30);
        })
        //.HtmlAttributes(new { style = "width: 1100px" })
        .Sortable()
        .Render();
}

Kendo 窗口 -

 @{Html.Kendo().Window()
      .Name("window")
      .Width(500)
      .Height(315)
      .Animation(true)
      .Draggable()
      .Visible(false)
      .Modal(true)
      .Title("Employment Status")
      .Actions(actions => actions.Close())
      .Content(@<text>
                   @using (Html.BeginForm("CreateStatus", "PreEmploymentWorkflow", FormMethod.Post, new { enctype = "multipart/form-data" }))
                   {
                       <table>
                           <tr>
                           <td>
                                   @(Html.Kendo().TextBoxFor(m => m.LstPreEmploymentWorkflowModel.PreEmploymentId))
                               </td>
                               <td>
                                   @(Html.Kendo().RadioButtonFor(m => m.LstPreEmploymentWorkflowModel.Status).Value(1).Label("Approved"))
                               </td>
                               <td>
                                   @(Html.Kendo().RadioButtonFor(m => m.LstPreEmploymentWorkflowModel.Status).Value(9).Label("Reject"))
                               </td>
                           </tr>
                           <tr>
                               <td>
                                   <label class="Bold" for="statusattachment">Status Attachment:</label>
                               </td>
                               <td><input type="file" name="uploadfilestatus"/></td>
                           </tr>
                           <tr>
                               <td>
                                   <input id="Button1" type="submit" value="Submit"/>
                               </td>
                           </tr>
                       </table>
                   }
                </text>)
      .Render();
}

感谢您的预先支持。
2个回答

2

如果有人想要寻找如何去做那件事

<script>

function editItem(e) {
    e.preventDefault();
    var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
    var pId = dataItem.PreEmploymentId;


       var myWin = $("#windowstatus").kendoWindow({

        modal: true,
        width: "450px",
        height: "250px",
        resizable: true,
        position: {
            top: 400,
            left: 650
        },
        title: "PreEmployment Status",
        content: {
            url: "../StatusWindow", //controller name
            data: { customerId: pId } //passing data
        }

    });
    myWin.data("kendoWindow").open();
    return false;
}
</script>

<script type="text/x-kendo-template" id="template">
    <div id="details-container">

    </div>
</script>

在Kendo Grid中,
    col.Bound(o => o.PreEmploymentId).Visible(false).Groupable(false);
    col.Command(command => command.Custom("Change Status").Click("editItem")).Width("120px");

在StatusWindowController中,

public class StatusWindowController : Controller
    {
        // GET: StatusWindow
        public ActionResult Index(int customerId)
        {

            return View(mixstatus);
        }
    }

1

谢谢您的回复。我按照给定的方式尝试了,但它以HTML格式给出。我希望它作为模型对象,这样我就可以在按钮单击事件中传递值以插入到数据库中。 - Sam S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接