Хорошо, мне нужна помощь. Я рассмотрел несколько других ответов, относящихся к моей проблеме, но не решил их.Telerik MVC Grid ClientTemplate Issue
Я пытаюсь добавить изображение действия в строку сетки в шаблоне клиента Telerik MVC.
Проблема, с которой я сталкиваюсь, я не могу получить идентификатор из столбца, для которого предназначен шаблон клиента.
Вот моя сетка:
@(Html.Telerik().Grid<xxx.Business.Entities.EntityName>()
.Name("StudentSearchResults")
.Columns(columns =>
{
columns.Bound(o => o.SchoolStudentID);
columns.Bound(o => o.FirstName);
columns.Bound(o => o.LastName);
columns.Bound(o => o.StudentID).ClientTemplate(
@Html.ActionImage("SubmitDegree", new { studentID = "<#= StudentID #=>" }, "~/Content/Images/Icons/16/bullet_go.png", "Submit Degree").ToString()
).Title("")
.Width(20);
})
.DataBinding(databinding => databinding
.Ajax()
.OperationMode(GridOperationMode.Client)
.Select("AjaxBindAction", "ControllerName"))
.Pageable()
.Sortable()
)
И я использую HtmlHelperExtension построить ActionImage:
public static MvcHtmlString ActionImage(this HtmlHelper html, string action, object routeValues, string imagePath, string alt)
{
var url = new UrlHelper(html.ViewContext.RequestContext);
// build the <img> tag
var imgBuilder = new TagBuilder("img");
imgBuilder.MergeAttribute("src", url.Content(imagePath));
imgBuilder.MergeAttribute("alt", alt);
string imgHtml = imgBuilder.ToString(TagRenderMode.SelfClosing);
// build the <a> tag
var anchorBuilder = new TagBuilder("a");
anchorBuilder.MergeAttribute("href", url.Action(action, routeValues));
anchorBuilder.InnerHtml = imgHtml; // include the <img> tag inside
string anchorHtml = anchorBuilder.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(anchorHtml);
}
Я также попытался установить шаблон на стороне сервера, а затем сторона клиента одна .. как отправлено here
@(Html.Telerik().Grid<AIPortal.Business.Entities.EntityName>()
.Name("StudentSearchResults")
.Columns(columns =>
{
columns.Bound(o => o.SchoolStudentID);
columns.Bound(o => o.FirstName);
columns.Bound(o => o.LastName);
columns.Bound(o => o.StudentID).Template(t => {
@Html.ActionImage("SubmitDegree", new { studentID = t.StudentID }, "~/Content/Images/Icons/16/bullet_go.png", "Submit Degree");
})
.ClientTemplate(
@Html.ActionImage("SubmitDegree", new { studentID = "<#= EntityName.StudentID #>" }, "~/Content/Images/Icons/16/bullet_go.png", "Submit Degree").ToString())
.Title("")
.Width(20);
})
.DataBinding(databinding => databinding
.Ajax()
.OperationMode(GridOperationMode.Client)
.Select("AjaxBindAction", "DegreeCompletion"))
.Pageable()
.Sortable()
)
думаю, что это может быть проблема с @ Html.ActionImage, запущенным на сервере в шаблоне клиента?
Я могу жестко закодировать StudentID, и все работает нормально. Единственная проблема заключается в попытке получить доступ к идентификатору StudentID, для которого предназначен шаблон клиента.
Может ли кто-нибудь указать мне в правильном направлении, чтобы получить этот идентификатор в моем шаблоне клиента?
Спасибо!
Я знаю, что я опоздал на вечеринку, но я в настоящее время пытается установить редактируемые сетки. Что касается Html.ActionImage в клиенте, я экспериментирую с использованием RazorEngine для создания строки на стороне клиента с использованием синтаксиса Razor. – B2K