MVC4 Подробный вид из GridMvc.selectedData

Я пытаюсь получить выбранную строку MVCGrid и отобразить детали в модальном диалоге, используя частичное представление.

Я получаю выбранную строку через ajax:

$(document).ready(function(){
 var selectedRow;
   $(document).on('click', '.grid-mvc', function () {
    pageGrids.PersonGrid.onRowSelect(function (e) {
        // $.prompt(e.row.ID);
        SendData(e.row);
       });
   });
});

Функция "SendData":

    function SendData(i) {
    var data= i.ID;
    $.ajax({
        url: '/Home/Person',
        contentType: "application/html; charset=utf-8",
        type: "GET",
        data: { "id": daten },
        dataType: "html"
       , success: function () {
           ShowPersonDetails(data);
       }
    });
   }

и ShowPersonDetails(данные) выглядит так:

function ShowPersonDetails(data) {
 $(document).ready(function () {
    $('#PersonDiv').load("Person?id=" + data);
    $("#PersonDiv").prompt(
        $("#PersonDiv").html(),
        {
            title: "some title",
            buttons: { OK: 'true', Abbruch: 'false' },
            position: { width: 800, height: 600 }
    });

 });

}

Контроллер:

[HttpGet]
    public  ActionResult Person(int id)
    {
        var pS = new DbAccess(MvcApplication.Connection).GetUserData(id);
        var p = new Person();

        if (pS.Rows.Count < 0)
        {
            return PartialView("Person");
        }
        p.Alter = pS.Rows[0].ItemArray[0].ToString();
        p.Nachname = pS.Rows[0].ItemArray[5].ToString();
       return PartialView("Person", p);
    }

Любой совет был бы хорош!

Привет ПП

1 ответ

Я сделал то, что вы пытаетесь сделать, так что надеюсь, мой код поможет

в таблице, я поставил ссылку для деталей

    <tr>
        <td>
@Html.ActionLink("Details", "ActionDetails", new { id = Model.LstItems[x].ID }, new { @class = "detailsLink" })
                    </td>
 </tr>

JavaScript

    $('#detailsDialog').dialog({
        autoOpen: false,
        width: 400,
        resizable: false,
        modal: true,
        buttons: {
            "Cancel": function () {
                $(this).dialog("close");
            }
        }
    });

   $(".detailsLink").button();
  $(".detailsLink").click(function () {
        linkObj = $(this);
        var dialogDiv = $('#detailsDialog');
        var viewUrl = linkObj.attr('href');
        $.get(viewUrl, function (data) {
            dialogDiv.html(data);
            //open dialog
            dialogDiv.dialog('open');
        });
        return false;
    });

где-то в представлении

   <div id="detailsDialog" title="Offer Details">
   </div> 

контроллер

    public ActionResult ActionDetails(int id)
    {
        ItemEntity model = ItemEntity .GetBy(id);

        return PartialView(model);
    }

частичный вид

      @model  YourNameSpace.Entities.ItemEntity
      @using (Ajax.BeginForm("ActionDetails", "YourController", new AjaxOptions
    {
        InsertionMode = InsertionMode.Replace,
        HttpMethod = "POST",
        OnSuccess = "updateSuccess",
        OnFailure = "showErrorMessage"
    }, new { @id = "detailForm" }))
    {

    //your details for your item
    }

надеюсь, это поможет вам

Другие вопросы по тегам