Telerik MVC grid Access Data вне сетки привязки - PullRequest
2 голосов
/ 24 января 2012

В Telerik MVC 3.0 Grid (Razor engine)

Как получить доступ к данным после привязки к сетке.Я использую вкладку «Подробный вид», используя приведенный ниже код.

items.Add()
     .Text("Additional Tab")
     .Content(@<text>
    @(Html.Telerik()
          .Grid<Models.PModel>()
          .Name( "Additional_<#= AddressID #>" )
          .DataBinding( dataBinding => dataBinding.Ajax()
                                                  .Select( "Action", "Controller", new { ID = "<#= ID #>" } ) )
          .Pageable()
          .Sortable()
          .Columns( columns =>
          {
            columns.Bound( e => e.Name ).Title( "Name" ).Width( 150 );
            columns.Bound( e => e.Email ).Title( "Email" );
            columns.Bound( e => e.Status ).Title( "Prescriber Status" );
            columns.Template( e => e.ID ).ClientTemplate( 
                        Ajax.ActionLink( "Edit", "EditDetails", new { ID = "<#= ID #>", PID = "<#= PID #>" }, 
                        new AjaxOptions
                        {
                            OnSuccess = "LoadAddEditForm",
                            UpdateTargetId = "ShowAddEditFormDialogModel",
                            InsertionMode = InsertionMode.Replace
                        },
                        new { @class = "button" } ).ToString() );
          } )
         .NoRecordsTemplate( "No additional added for this" )
    )
@Ajax.ActionLink("Add New", "AddEdit", "Controller", 
    new { ID =  "<#= ID #>"},
    new AjaxOptions
    {
        OnSuccess = "LoadAddEditForm",
        UpdateTargetId = "ShowAddEditFormDialogModel",
        InsertionMode = InsertionMode.Replace
    }, 
    new { @class = "button", id="AjaxAddNewButton" })
</text>);

Теперь проблема в том, если вы заметили, что я добавил ссылку Ajax.Action после привязки к сетке.

@Ajax.ActionLink("Add New", "AddEdit", "Controller", 
    new { ID =  "<#= ID #>"},
    new AjaxOptions
    {
        OnSuccess = "LoadAddEditForm",
        UpdateTargetId = "ShowAddEditFormDialogModel",
        InsertionMode = InsertionMode.Replace
    },
    new { @class = "button", id="AjaxAddNewButton" })

В этой ссылке Ajax я могу получить значение объекта new { ID = "<#= ID #>"}, так как я пытаюсь получить доступ к <# = ID #> после привязки к сетке, оно не отображает значение,Как я могу получить эту работу?

Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 11 апреля 2012

Это невозможно.

<# ID #>, который вы используете, предназначен для одной строки в вашей сетке. Его нельзя использовать вне метода .Columns(). Таким образом, ваш шаблон столбца может работать, но если вы проверите, что отправляется в Action для обработки привязки, вы увидите, что параметр ID буквально равен "<# ID #>".

Для ActionLink за сеткой, какой идентификатор вы хотели? из какого ряда?

...