Как мне отправить пользовательские данные в jqGrid? - PullRequest
0 голосов
/ 27 ноября 2011

хорошо, вот в чем дело ... У меня есть этот jqGrid, и мне нужно подвести итоги показанных данных. У этого jqGrid есть определения как показано ниже

jQuery("#myGrid").jqGrid
    { 
        url:'/loadGrid.php?q=2', 
        datatype: "xml", 
        colNames:[...], 
        colModel:[...], 
        // some other params.
        footerrow : true, 
        **userDataOnFooter : true,** // it should show footer's custom information.
        altRows : true
    }).navGrid('#pagerGrid',{add:false,edit:false,del:false, search:false}); 

и loadGrid.php имеет следующую структуру, показанную ниже

$page = $_GET['page']; // get the requested page 
$limit = $_GET['rows']; // get how many rows we want to have into the grid 
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort 
$sord = $_GET['sord']; // get the direction 

// here goes connextion to database and data collection
...
//

if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) 
{
    header("Content-type: application/xhtml+xml;charset=utf-8"); 
} 
else 
{
    header("Content-type: text/xml;charset=utf-8");
}

$et = ">";
echo "<?xml version='1.0' encoding='utf-8'?$et\n";
echo "<rows>";
echo "<page>$current</page>";
echo "<total>$total</total>";
echo "<records>$records</records>";

// and data population
foreach( $data as $key => $value ) 
{ 
    $ff = $value['field_1'];
    echo "<row id='". $ff."'>";
    // $ff = $value['field_1'];
    echo "<cell> <![CDATA[" . $ff . "]]></cell>";
    $ff = $value['field_2'];
    echo "<cell> <![CDATA[" . $ff . "]]></cell>";
    $ff = $value['field_3'];
    echo "<cell> <![CDATA[" . $ff . "]]></cell>";
    // ... and so on whith all column definitions.
    echo "</row>";
}

echo "</rows>";

Это работает, но проблемы становятся, когда показывают сетку. В нижнем колонтитуле сетки я вижу только пустую строку. Если я добавлю какие-нибудь обобщенные данные и попытаюсь отправить на страницу, это ничего не покажет. Итак, что мне нужно знать, это как передать пользовательские данные для страницы, чтобы прочитать ее.

Я уже прочитал информацию из jqGrid whiki и сказал что-то вроде "userData: этот массив содержит пользовательскую информацию из запроса. Может использоваться в любое время." , но я не могу понять, как передать эту информацию в #myGrid. У кого-нибудь есть идеи по этому поводу? Любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 27 ноября 2011

Формат пользовательских данных в XML может показаться немного странным на первый взгляд, но это ясно задокументировано здесь . Вы должны добавить несколько элементов XML в виде

...
<page>1</page>
<userdata name="gridColumName1">value1 in the summary</userdata>
<userdata name="gridColumName2">value2 in the summary</userdata>
...

Вы должны использовать те же имена столбцов ('gridColumName1', 'gridColumName2'), что и вы, как определено в свойстве name определений столбцов в colModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...