좋아이 문제에 대해 도움이 필요합니다. 내 문제와 관련된 몇 가지 다른 답변을 검토했지만 해결하지는 못했습니다.Telerik MVC Grid ClientTemplate 문제
Telerik MVC 클라이언트 템플릿의 그리드 행에 작업 이미지를 추가하려고합니다.
문제점은 클라이언트 템플릿이있는 열에서 ID를 가져올 수 없다는 것입니다. 여기
내 그리드입니다 :@(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()
)
그리고 나는 ActionImage 구성하는 HtmlHelperExtension을 사용하고 있습니다 : 다음
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에 액세스하려는 경우입니다.
누군가 내 클라이언트 템플릿에이 ID를 얻기 위해 올바른 방향으로 나를 가리킬 수 있습니까?
감사합니다.
나는 파티에 늦게 해요 알고 있지만, 현재 편집 가능한 그리드 설정에 노력하고 있습니다. 클라이언트의 Html.ActionImage와 관련하여 RazorEngine을 사용하여 Razor 구문을 사용하여 클라이언트 측 문자열을 생성하는 방법을 실험하고 있습니다. – B2K