2015-06-08 4 views
0

Я пытаюсь отключить строку в моем JQGrid. И, используя класс HtmlHelper, JQGrid выполняется для динамической нагрузки. Ниже приведен пример, как показано, чтоОтключить строку JQGrid на основе значения ячейки с помощью JQuery

public static MvcHtmlString CreateSubGrid<T>(this HtmlHelper helper,  
                GridViewModel<T> model) 
{ 

    htmlBuilder.AppendFormat(@"<table id=""{0}"" class=""scroll""  
     cellpadding=""0"" cellspacing=""0""></table>", model.Id); 
    htmlBuilder.AppendFormat(@"<div id=""{0}Pager"" class=""scroll"" 
         style=""text-align:center;""></div>", model.Id); 

    htmlBuilder.AppendFormat(@"<script type=""text/javascript"">"); 
    ..... 
    ..... 

И мой взгляд модель содержит семь столбцов, в которых название седьмого столбца является «IsClosed». Если этот столбец содержит Да или любое значение, то вся строка должна быть не редактируемой. И я не знаю, как это делается. Так что помогите мне, пожалуйста.

My View Модель следующее,

public class OBRAccountViewModel 
{ 
    [JQGridColumn(IsHidden = true)] 
    public virtual long OBRBankSeq { get; set; } 

    [JQGridColumn(IsHidden = true)] 
    public virtual long OBRSeq { get; set; } 

    [JQGridColumn(Name = "Overseas Account No", Index = "{0}", Width = 145, IsSearch = true)] 
    public virtual string OverSeasAccountNo { get; set; } 

    [JQGridColumn(Name = Constants.DisplayName.BeneficiaryBank, Index = "{0}", Width = 130, IsSearch = true)] 
    public virtual string BeneficiaryBank { get; set; } 

    [JQGridColumn(Name = Constants.DisplayName.CurrencyCode, Index = "{0}", Width = 130, IsSearch = true)] 
    public virtual string CurrencyCode { get; set; }  

    [JQGridColumn(Name = Constants.DisplayName.AccountClosureDate, Index = "{0}", Width = 130, IsSearch = true,IsEditable=true)] 
    public virtual DateTime? ClosureDate { get; set; } 

    [JQGridColumn(Name = Constants.DisplayName.AccountClosureRemarks, Index = "{0}", Width = 250, IsSearch = true, IsEditable = true)] 
    public virtual string ClosureRemarks { get; set; } 

    [JQGridColumn(Name = "IsClosed", Index = "{0}", Width = 250, IsSearch = true, IsEditable = true,IsHidden=false)] 
    public virtual string IsClosed { get; set; }  

} 

ответ

0

Я бы рекомендовал использовать rowattr добавить классы "ui-state-disabled ui-jqgrid-disablePointerEvents" если IsClosed содержит "Yes". См. the old answer, где я описал подход. Не забудьте использовать опцию gridview: true, чтобы иметь дополнительное преимущество в производительности. Посмотрите на

gridview: true, 
rowattr: function (rd) { 
    if (rd.IsClosed === "Yes") { // verify that the testing is correct in your case 
     return {"class": "ui-state-disabled ui-jqgrid-disablePointerEvents"}; 
    } 
} 

Если вы используете последнюю версию free jqGrid затем ui.jqgrid.css содержит правило CSS

.ui-jqgrid-disablePointerEvents { 
    pointer-events: none; 
} 

Если используется другая вилка на старой версии jqGrid, то вы должны добавить вышеупомянутую роль вручную ,

К сожалению, вы можете удалить из кода код с class=""scroll"" cellpadding=""0"" cellspacing=""0"" и class=""scroll"" style=""text-align:center;"". Эта установка устарела с многих лет. jqGrid не использует класс scroll внутренне и просто удаляет его, если он существует.

+0

На самом деле, я хочу это в JQuery. Как это сделать в JQuery? Или иначе вы можете дать полный образец кода, тогда я с легкостью найду решение –

+0

javascript написан на C#, поэтому я не могу получить значение столбца IsClosed @Oleg –

+0

@MdAslam: [Старый ответ] (http: // stackoverflow.com/a/10531680/315935), который я упоминаю в своем ответе, содержит [demo] (http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridChangeRowBackgroundBasedOnCheckboxes3.htm), который демонстрирует 'rowattr'. Ваш вопрос о jqGrid, который написан на JavaScript (как плагин для jQuery) в 100%. Таким образом, использование некоторых языков на стороне сервера может следовать только за неправильным пониманием. Самая большая возможность включить некоторую логику в сетку, которую вы имеете только в JavaScript. – Oleg