ActionLink problème avec grille modèle client Telerik MVC
-
27-09-2019 - |
Question
J'utilise grille Telerik à des notes de service actuelles reçues par l'utilisateur est le code ci-dessous
<%Html.Telerik().Grid<UserManagement.Models.SentMemos>()
.Name("ReceivedMemos")
.Sortable(sorting => sorting
.OrderBy(sortOrder => sortOrder.Add(o => o.MemoDate).Descending()))
.DataBinding(dataBinding => dataBinding
//Ajax binding
.Ajax()
//The action method which will return JSON
.Select("_AjaxBindingReceivedMemos", "OA" )
).
Columns(colums =>
{
colums.Bound(o => o.MemoID).ClientTemplate(Html.ActionLink("Reply", "ReplyMemo", "OA", new { MemoID = "<#=MemoID#>"}, null).ToString()).Title("Reply").Filterable(false).Sortable(false);
colums.Bound(o => o.MemoID).ClientTemplate(Html.ActionLink("Acknowledge", "PreviewMemo", "OA", new { id = "<#=MemoID#>"}, null).ToString()).Title("Acknowledge").Filterable(false).Sortable(false);
colums.Bound(o => o.Subject).ClientTemplate(Html.ActionLink("<%#=Subject#>", "PreviewMemo", "OA", new { id = "<#=MemoID#>" }, null).ToString()).Title("Subject");
//colums.Bound(o => Html.ActionLink(o.Subject,"PreviewMemo","OA",new{id=o.MemoID},null).ToString()).Title("Subject");
colums.Bound(o => o.FromEmployeeName);
colums.Bound(o => o.MemoDate);
})
.Sortable()
.Filterable()
.RowAction((row) =>
{
row.HtmlAttributes.Add("style", "background:#321211;");
})
.Pageable(pager=>pager.PageSize(6))
.PrefixUrlParameters(false)
//.ClientEvents(events => events.OnRowDataBound("onRowDataBound"))
.Render();
%>
où je suis RELIURE troisième colonne (Objet) mon intention est de faire un ActionLink sujet est où le texte d'affichage et je veux un ID dynamique venant de <#=MemoID#>
. id mémo est bien de travail et me donne un lien avec les ID dynamiques Mémo. le problème est lié à la i.e. du sujet ("<#=Subject#>"
) est rendue telle qu'elle apparaît à l'écran sans mappage pour l'objet réel de la note. J'ai aussi essayé ("<%#=Subject%>"
) mais aucun gain. toute aide est très appréciée
Cordialement
La solution
peu tard peut-être pour vous, mais peut-être cela va aider les autres:
Je le fais par des modèles, comme suit:
columns.Bound(c => c.ID).ClientTemplate(
Html.ActionLink("<#= SomeTextValue #>", "SomeAction", "SomeController", new { ID = "<#= ID #>" }, null).ToString()
).Title("");
Autres conseils
Je me rends compte que c'est assez tard mais j'ai eu un problème similaire que j'ai finalement compris et ce lien venu au cours de résultats de recherche.
Je tentais d'ajouter un Ajax.ActionLink à un modèle client pour grille MVC. Enfin trouvé la question de la tige du UpdateTargetID = « myElement ».
Ajax.ActionLink génère une séquence d'échappement "#" pour la cible de mise à jour.
Mon travail autour était:
columns.Bound(p => p.ID).Title("myTitle")
.ClientTemplate(Ajax.ActionLink("View", "myAction", "myController", new { myParam = "#=ID#" }, new AjaxOptions() { OnSuccess = "myJSFunction" }).ToHtmlString());
Puis:
function myJSFunction(response) {
$("#updateTargetElement").html(response);
}