2014-12-11 4 views
0

Я стараюсь иметь высоту и ширину cfgrid для размещения на странице независимо от размера экрана.cfgrid авто высота и ширина

<cfform> 
    <!-- I have tried: But it can not have percentages. --> 
    <cfgrid name="FLines" height="60%" width="60%" format="html" selectmode="EDIT" striperows="Yes" query="PGs" appendkey="No" hrefkey="True"> 
    <!-- I do not want to tell it a hardcoded way for width and height. --> 
    <cfgrid name="FLines" height="600" width="600" format="html" selectmode="EDIT" striperows="Yes" query="PGs" appendkey="No" hrefkey="True"> 

    <cfgridcolumn name="PRID" display="No"> 
    <cfgridcolumn name="PROFILE" header="Profile" width="50"> 
    <cfgridcolumn name="DESCRIPTION" header="Description" width="200"> 
    <cfgridcolumn name="Qty" header="Prod Cat" width="50"> 
    <cfgridcolumn name="CARTONWIDTH" header="Carton Width" width="75"> 
    <cfgridcolumn name="Configuration" header="Config" width="50"> 
    </cfgrid> 

Любые предложения?

+2

Да, не используйте 'cfgrid' (или любой из элементов интерфейса Cf, действительно). Попробуйте jQGrid. –

+2

jqGrid - это кошмар, чтобы вписаться в существующий дизайн. Я много месяцев пытался, и он никогда не работал. Попробуйте http://www.datatables.net. –

+0

Хотя я предпочитаю datatables, базовый оператор Скотта прав. После достаточного времени работы с элементами интерфейса CF, вы обнаружите, что они дрянные костыли. Опираясь на них слишком сильно, и они начинают растрескиваться. –

ответ

0

Источник:CFGrid - Use full document width по Жюль

Автор здесь говорит о том, что на вашем член-зоны главной странице, вы используете JavaScript для установки куки.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script type="text/javascript"> 
function createCookie(name, value, days) { 
if (days) { 
var date = new Date(); 
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
var expires = "; expires=" + date.toGMTString(); 
} else var expires = ""; 
document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/"; 
} 

function readCookie(name) { 
var nameEQ = escape(name) + "="; 
var ca = document.cookie.split(‘;’); 
for (var i = 0; i < ca.length; i++) { 
var c = ca[i]; 
while (c.charAt(0) == ‘ ‘) c = c.substring(1, c.length); 
if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length, c.length)); 
} 
return null; 
} 

function eraseCookie(name) { 
createCookie(name, "", -1); 
} 

$(document).ready(function(){ 
createCookie("bodyWidth", $(document).width()-20, 14); 
}); 
</script> 
<cfset structDelete(session, ‘bodyWidth’) /> 

Затем они используют это в OnRequestStart из Application.cfc (также будет работать в application.cfm, если вы используете это)

<!— GRID WIDTHS —> 
<cfif not isDefined("session.bodyWidth")> 
<cfif isDefined("cookie.bodyWidth")> 
<cfset session.bodyWidth = cookie.bodyWidth> 
<cfelse> 
<cfset session.bodyWidth = 1067> 
</cfif> 
</cfif> 

И теперь ваши cfgrids могут использовать session.bodywidth в качестве переменной.

Недостатком является то, что он не динамически реагирует на изменение размера, но он работает для разных разрешений.

Автор использует JQuery, но чистый javascript может делать все, что может сделать JQuery, и похоже, что JQuery используется действительно действительно минимально здесь, большинство из этого решения - просто Javascript.

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