2012-06-25 7 views
0

Я работаю над CSS таблицы, которая создается через JQGrid на стороне сервера с помощью C#. Я попытался переопределить определения макета (например, ширину) на стороне клиента (конечно, после того, как таблица на стороне сервера сгенерирована в коде), но ничего не получила. единственное, что сработало, это создание целого нового объекта jqgrid, который, очевидно, сводит на нет все определения на стороне сервера, поэтому бесполезно.Переопределение параметров JQGrid defind на стороне сервера

Есть ли способ как-то восстановить копию объекта JavaScript на стороне клиента, а затем применить к нему изменения?

Ваша любезная помощь приветствуется.

редактировать: здесь, чтобы код, используемый для создания таблицы с C#:

 this.projectGrid = new JQGrid 
     { 
      Columns = new List<JQGridColumn>() 
      { 
       new JQGridColumn { Visible=true, 
            Editable=false, 
           // Width=70, 
            DataField="compliance_colour", 
            HeaderText="Comp.", 
            Searchable=false, 
            Formatter = new CustomFormatter 
                  { 
                   FormatFunction = "formatCmpImage" 

                  } 


       }, 
       new JQGridColumn{ DataField="ProjectID", 
            PrimaryKey=true, 
            Visible=true, 
            Editable=false, 
            HeaderText="ID", 
           // Width=50, 
            Searchable=false 
       }, 
       new JQGridColumn{ DataField="OpsRegion", 
            Visible=true, 
            Editable=false, 
            HeaderText="Ops Region", 
           // Width=180, 
            Searchable=false 

       }, 
        new JQGridColumn{DataField="customer", 
           Visible=true, 
           Editable=false, 
           HeaderText="Customer Name", 
           // Width=180, 
           Searchable=false 

       }, 
        new JQGridColumn{ DataField="projectName", 
            Visible=true, 
            Editable=false, 
            HeaderText="Project Name", 
           // Width=300, 
            Searchable=false, 
            Formatter = new CustomFormatter 
                  { 
                   FormatFunction = "formatLink", 

                  } 


       }, 

       new JQGridColumn{DataField="projectManager", 
           Visible=true, 
           Editable=false, 
           HeaderText="Project Manager", 
           // Width=110, 
            Searchable=false 
       }, 
       new JQGridColumn{DataField="status", 
           Visible=true, 
           Editable=false, 
           HeaderText="Status", 
           // Width=70, 
           Searchable=false 

       }, 
       new JQGridColumn {DataField="type", 
            Visible=true, 
            Editable=false, 
            HeaderText="Type", 
          //  Width=70, 
            Searchable=false 

       }, 
       new JQGridColumn {DataField="favorite", 
            Visible=true, 
            Editable=false, 
            HeaderText="Favorite", 
           // Width=60, 
            Searchable=false, 
            Formatter = new CustomFormatter 
                   { 
                    FormatFunction = "formatFvImage", 
                    UnFormatFunction = "unformatCell" 
                   } 

       }, 
       new JQGridColumn {DataField="compliance_reason", 
            Visible=false  
       }, 
       new JQGridColumn {DataField="lastUpdate", 
            Visible=true, 
            Editable=false, 
           // Width=60, 
            HeaderText="Last Update", 
            Searchable=false, 
            Formatter = new CustomFormatter 
                   { 
                    FormatFunction = "formatReportLink", 
                    UnFormatFunction = "unformatCell" 
                   } 

       }, 
      }, 
      Width = Unit.Pixel(1400), 
      ShrinkToFit=true, 
      Height = Unit.Pixel(520), 

     }; 
+0

Вы используете * бесплатный * открытый исходный код [jqGrid] (http://stackoverflow.com/tags/jqgrid/info) из [trirand.com] (http://www.trirand.com/blog/?page_id = 6) или какой-либо * коммерческий * продукт на основе jqGrid, например jqSuite, из [trirand.net] (http://www.trirand.net/licensing.aspx)? В последнем случае вы должны использовать другой тег вопроса, например [jqgrid-asp.net] (http://stackoverflow.com/tags/jqgrid-asp.net/info). – Oleg

ответ

0

Если вам нужно изменить width сетки вы можете использовать setGridWidth метод. Чтобы переписать многие другие параметры jqGrid, вы можете вместо этого использовать setGridParam. Вы можете использовать методы после сетка создана. В общем, вы должны использовать jqGrid methods, если кто-то существует для точной опции (например, setCaption, setGridHeight, setColProp, ...). Если вы не найдете специального метода jqGrid для изменения параметров, вы, вероятно, должны использовать метод setGridParam.

+0

Спасибо за ваш ответ. Тем не менее, я, очевидно, попробовал этот b4 опубликовать свой вопрос. IMHO. Проблема заключается в том, что таблица сгенерирована на стороне сервера, и, таким образом, первая копия этой таблицы obj должна быть сначала получена, b4 пытается манипулировать любыми параметрами – Matanya

+0

@Matanya: Вы не описываете *, как * (каким образом) вы «генерируете» таблицу (??? сетка или вы используете 'tableToGrid'?). Вы должны написать более подробную информацию. Как вы пытались изменить параметры jqGrid? Вы сделали это * после того, как * сетка создана (см. Мой ответ)? Если ваш код JavaScript будет вызываться * до *, сетка будет создана, вы можете изменить * параметры по умолчанию jqGrid на странице ('$ .extend ($. Jgrid.defaults, {...});'). См. Здесь [здесь] (http://stackoverflow.com/a/2678731/315935). – Oleg

+0

@Matanya: код, который вы отправили в ** ** в редакторе **, показывает, что вы используете * коммерческий * продукт, например jqSuite, из [trirand.net] (http://www.trirand.net/licensing.aspx) вместо [jqGrid] (http://stackoverflow.com/tags/jqgrid/info). Я могу только повторить предложение из моего последнего комментария. Вы можете найти пример такого подхода в ОБНОВЛЕНОМ части [ответа] (http://stackoverflow.com/a/10980350/315935) (ответ не принят, но я проверил код, который я опубликовал ранее, и он работает). В зависимости от того, где вы включили ' ...' на странице ASPX вы можете уменьшить код. – Oleg

Смежные вопросы