Скрытие / отображение ссылок в Telerik MVC2 Grid - PullRequest
2 голосов
/ 27 октября 2010

У меня есть Telerik MVC2 Grid, в котором есть такой столбец:

columns.Bound(c => c.CustomerID)
       .Format(Html.ActionLink("Close", "CloseCustomer", new { Id = "{0}"}).ToString())
       .Encoded(false)
       .Title(String.Empty)
       .Width(80);

используемые объекты также включают закрытый флаг, и я хотел бы иметь возможность сделать его невидимым, если клиент уже закрыт (используемый объект также имеет ClosedFlag и CustomerID).

Есть ли простой способ сделать это, или я должен использовать пользовательские шаблоны?

Ответы [ 2 ]

0 голосов
/ 11 июля 2011

Я делал это раньше в одном из моих проектов.Пожалуйста, посмотрите на это.Я использую Ajax.ActionLink, который мы обычно используем

        <% Html.Telerik().Grid<TMG.Framework.Web.MVC.Models.EnrolRegAcntDescriptor>()
       .HtmlAttributes("style")
   .Name("Grid")

   .DataKeys(datakeys => datakeys.Add(m => m.enrollment_account_id))
   .Columns(columns =>
   {
       columns.Bound(m => m.NPI).Width(70);
       columns.Bound(m => m.PIN).Title("Legacy PIN").Width(70);
       // columns.Bound(m => m.EnrolRegAcntDescriptor.bank_account_no).Title("Account No.");
       columns.Bound(m => m.aba_routing_no).Title("ABA Routing");
       columns.Bound(m => m.financial_inst).Title("Financial Inst").Width(50);
       columns.Bound(m => m.Name).Title("Authorized User").Width(90);
       columns.Bound(m => m.status).Title("Status").Width(80);
       columns.Bound(m => m.EnrollmentAuthorityID).Title("");
       columns.Bound(m => m.ProviderApplicantID).Title("");
       columns.Bound(m => m.enrol_status_id).Title("");
            columns.Template(m => m.status)
             .ClientTemplate(
             Ajax.ActionLink("Delete ", "DeleteEnrolAccountByID",
             new
             {
                 ProviderApplicantID = "<#=ProviderApplicantID#>",
                 enrol_status_id = "<#=enrol_status_id #>",
             EnrollmentAuthorityID = "<#=EnrollmentAuthorityID#>",
             enrollment_account_id = "<#=enrollment_account_id#>" },
             new AjaxOptions { UpdateTargetId = "EnrolRegisterComplete", HttpMethod = "Delete" },
             new
             {
                 name = "deleteStatus",
                 status = "<#=status#>",
                 enrollment_account_id = "<#=enrollment_account_id#>",
                 EnrollAuthorityID = "<#=EnrollmentAuthorityID#>",
                 ProviderApplicantID = "<#=ProviderApplicantID#>",
                 enrol_status_id = "<#=enrol_status_id #>",
                // onclick = "return confirm('Are you sure you want to delete this User?');"
             }).ToHtmlString());
   }).ClientEvents(ev => {ev.OnDataBound("onGridBound"); })          
    .DataBinding(dataBinding => dataBinding.Ajax().Select("ajaxIndex", "EnrolRegister"))
     .Footer(true).Sortable()
     .Scrollable()
     .Pageable(pager=> pager.PageSize(10))
    .Render(); %>

    <script type="text/javascript" >
        function onGridBound(e) {

            $("a[name='deleteStatus']").each(function (e) {
                if ($(this).attr("status") != 'Enrolled') {
                    $(this).hide();
                } //, "disabled");
            });
        }
    </script>
0 голосов
/ 24 января 2011

Вы можете определить что-то вроде:

<%
 Html.Telerik().Grid(Model)
 .Columns(columns =>
                     {
                         columns.Template(m =>
                                            {
                                             if (!m.Closed)
                                              {
    %>
    <a id='closed'>You hyperlink here</a>
    <%
        }
                                              })
 //blah blah and the rest of the column defiitions
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...