2015-02-10 20 views
5

Ecco un jsfiddle con una griglia kendo campione:Come posso impostare una proprietà di larghezza massima per le singole colonne della griglia del kendo?

http://jsfiddle.net/owlstack/Sbb5Z/1619/

Ecco dove ho impostato le colonne kendo:

$(document).ready(function() { 
    var grid = $("#grid").kendoGrid({ 
     dataSource: { 
      data: createRandomData(10), 
      schema: { 
       model: { 
        fields: { 
         FirstName: { 
          type: "string" 
         }, 
         LastName: { 
          type: "string" 
         }, 
         City: { 
          type: "string" 
         }, 
         Title: { 
          type: "string" 
         }, 
         BirthDate: { 
          type: "date" 
         }, 
         Age: { 
          type: "number" 
         } 
        } 
       } 
      }, 
      pageSize: 10 
     }, 
     height: 500, 
     scrollable: true, 
     sortable: true, 
     selectable: true, 
     change: onChangeSelection, 
     filterable: true, 
     pageable: true, 
     columns: [{ 
      field: "FirstName", 
      title: "First Name", 
      width: "100px", 
     }, { 
      field: "LastName", 
      title: "Last Name", 
      width: "100px", 
     }, { 
      field: "City", 
      width: "100px", 
     }, { 
      field: "Title", 
      width: "105px" 
     }, { 
      field: "BirthDate", 
      title: "Birth Date", 
      template: '#= kendo.toString(BirthDate,"MM/dd/yyyy") #', 
      width: "90px" 
     }, { 
      field: "Age", 
      width: "50px" 
     }] 
    }).data("kendoGrid"); 

    applyTooltip(); 
}); 

ho aggiunto singole larghezze per ciascuna delle colonne. Tuttavia, vorrei anche impostare una larghezza massima per ogni colonna della griglia del kendo. È possibile impostare una larghezza massima (non impostata per tutte le colonne ma larghezza massima per le singole colonne?)?

+0

Non è possibile farlo * all'interno * dell'interfaccia utente di Kendo (l'unica proprietà di larghezza disponibile qui è quella che si è già utilizzata) ma probabilmente è possibile utilizzare ancora JavaScript per impostare una larghezza massima. Magari inserire le colonne in una matrice e quindi impostare la larghezza massima per le singole colonne in base alla loro posizione nell'array, ad es. 0, 3, 5, ecc.). Ora, se dovessi impostare la tabella usando HTML e poi chiamare la griglia ('$ (" # grid "). KendoGrid();'), allora potresti probabilmente usare CSS per impostare la larghezza massima di ogni colonna inline o con una classe. – TylerH

+0

Hmm non va bene. Puoi mostrarmi un esempio di come impostare le colonne in un array? Grazie –

+0

In realtà non conosco Kendo/jQuery/JavaScript, stavo solo facendo riferimento ai documenti dell'interfaccia utente di Kendo. – TylerH

risposta

3

Non esiste una proprietà come larghezza massima esposta per griglia di kendo. Una delle soluzioni rotonde sarà quella di impostare Larghezza della colonna come autosize e quindi utilizzare il modello in cui si utilizzano le proprietà CSS per mantenere la larghezza massima.

Di seguito è riportato l'esempio. Non sono sicuro se stai cercando la stessa risposta.

<style>.intro { max-width: 100px ;width: 20px ;background-color: yellow;</style> 


<script> 
$(document).ready(function() { 
       $("#grid").kendoGrid({ 
        dataSource: { 
         type: "odata", 
         transport: { 
          read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Customers" 
         }, 
         pageSize: 20 
        }, 
        height: 550, 
        groupable: true, 
        sortable: true, 
        pageable: { 
         refresh: true, 
         pageSizes: true, 
         buttonCount: 5 
        }, 
        columns: [{ 
         field: "ContactName", 
         title: "Contact Name", 
         template : '<span class=intro>#:ContactName#</span>' 
        }, { 
         field: "ContactTitle", 
         title: "Contact Title" 
        }, { 
         field: "CompanyName", 
         title: "Company Name" 
        }, { 
         field: "Country", 
         width: 150 
        }] 
       }); 
      }); 
     </script> 
0

Ho codice JavaScript che contribuirà a raggiungere questa funzionalità. Fornisce un modo per una colonna (comando) di mantenere una dimensione fissa.

Da un lato, funge da dimensione minima per una colonna, ma se la griglia dovesse aumentare di dimensioni, viene applicata la dimensione originale. Ciò consente ad altre celle della griglia di aumentare di dimensioni in misura maggiore.

Verificare this dojo che mostra questo codice in azione.

Si noti che tutte le colonne devono avere una larghezza specificata (questa diventa effettivamente una larghezza minima).

L'evento di ridimensionamento del browser viene utilizzato per attivare il ricalcolo delle dimensioni delle griglie.

Questa funzione supporta master/dettagli e raggruppamento.

Non ho considerato il ridimensionamento della colonna a questo punto.

Se avete idee per miglioramenti, provate!