flexigrid при щелчке строк - PullRequest
0 голосов
/ 29 ноября 2011

Как я могу активировать обычное действие для щелчка по строке способом flexigrid? Я хочу, чтобы при щелчке строки перенаправлялся на http://localhost/view/40 (значение идентификатора) для строки, по которой щелкнули

            $("#flex1").flexigrid({
                url: 'http://localhost/index.php/get_data',
                dataType: 'json',
                method: 'GET',
                colModel : [
                        {display: 'ID', name : 'id', width : 40, sortable : true},
                        {display: 'A', name : 'a',  width : 40,  sortable : true},
                     singleSelect   {display: 'B', name : 'b', width : 40,  sortable : true},
                    ],
                sortname: "id",
                sortorder: "desc",
                showTableToggleBtn: false,
                resizable: false,                       
                useRp: true,
                rp: 30,                      
                singleSelect: true,
                usepager: true,
                width: 'auto',
                height: 100
            });   

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

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

так, например, вы можете взглянуть на свой HTML в Firebug и посмотреть, какие классы или идентификаторы могут быть назначены столбцу для идентификатора. может быть, это такой класс, как flexigrid-row-id или что-то в этом роде

$('#flex1 tr[WHATEVER SELECTOR RENDERS IN YOUR GRID FOR THE ID COLUMN]').click(function(){
     // simulates similar behavior as an HTTP redirect
      window.location.replace("http://localhost/view/40");
});

просто убедитесь, что вы присвоили это событие после того, как ваша сетка завершена / загружена

0 голосов
/ 18 ноября 2014

Вот как я это делаю ..

загружаю сетку

jQuery("#sometable").flexigrid({
                url: 'http://localhost/get_data',
                dataType: 'json',
                colModel : [
                    {display: 'id', name : 'id', width : 40, sortable : true, align: 'center', hide: true},
                    {display: 'name ', name : 'Name', width : 150, sortable : false, align: 'left', hide: false},
                    {display: 'image', name : 'LogoName', width : 100, sortable : true, align: 'left', hide: false}
                    ],
                    sortname: "id",
                    sortorder: "desc",
                    usepager: true,
                    singleSelect: true,
                    title: 'Some title',
                    useRp: true,
                    rp: 10,
                    width: 1000,
                    nowrap: false,
                    height: 'auto',
                    onSuccess : sometableonSuccess
          }); 

и при загрузке .. срабатывает onSuccess ..

function sometableonSuccess(){
        jQuery('#sometable tr').each( function(){ 

                jQuery(this).click(function(){
                      //Get the id of the row
                      var id = jQuery(this).find("td:eq(0)").text(); 
                      //Do some action

                });                                        


            });
    }
...