2013-03-13 5 views
1

У меня есть сетка, и я использую PHP и JSON. Я использую ondblClickRow для создания встроенного редактирования. Мне нужно следующее: при двойном щелчке в поле, я хочу, чтобы содержимое этого поля было выбрано. Прошу прощения об этом, но я этого не нашел ... когда я ищу его в Google, я просто нахожу примеры выбора строки и этих проблем.jqGrid: Выберите текст строки для встроенного редактирования

+0

Какой браузер вы используете? Порядок событий 'click' и' dblclick' может отличаться в разных веб-браузерах. Вы не можете предотвратить выбор в случае 'dblclick', если' click' будет первым. Вы можете отменить выбор только нажатой строки внутри события 'dblclick', если это действительно необходимо. – Oleg

+0

Я использую Firefox. Hummm Я этого не знал! Спасибо @Oleg. Поэтому я думаю, что мне придется что-то изменить, чтобы найти способ сделать это. Еще раз спасибо! :) – mailazs

ответ

2

Я рекомендую вам посмотреть this answer и another one. Вероятно, модификация кода из последнего ответа на веб-браузер, который вы используете, поможет вам решить вашу проблему.

+0

Большое спасибо @Oleg. Я попробую это! :) – mailazs

+0

@mzs_newbie: Вероятно, вторая часть [другого ответа] (http://stackoverflow.com/a/8334227/315935) может быть вам полезной. Он показывает, как выбрать текст внутри ячеек. Используя тот же API, вы также можете отменить выбор текста. См. [Ответ] (http://stackoverflow.com/a/3169849/315935), [эта ссылка] (http://msdn.microsoft.com/en-us/library/ie/ff975178 (v = vs. 85) .aspx). – Oleg

+0

Еще раз ... спасибо @Oleg! Вы всегда готовы помочь тем, кто в этом нуждается! : D – mailazs

0

Если вы хотите, одна ячейка будет сосредоточены после режима рядный редактирования включен, попробуйте следующее:

ondblClickRow: function (rowId, rowIndex, columnIndex) { 
    var grid = $('#mygrid'); 
    grid.editRow(rowId, true, function() { 
    var colModel = grid.getGridParam('colMode'); 
    var colName = colModel[colIndex].name; 
    var input = $('#' + rowId + '_' + colName); 
    input.get(0).focus(); 
    }); 
} 
} 

Найдено код здесь: http://www.trirand.com/blog/?page_id=393/help/setting-focus-on-a-cell-after-entering-edit-mode/

+0

Не ячейка, а строка ... Я просто хочу поставить фокус в эту ячейку, которую я нажимаю и выбираю контент ... так что, по-вашему, мне тоже нужно реализовать редактирование ячейки? Спасибо – mailazs

+0

Редактирование ячейки для редактирования одной ячейки, а не целой строки. Таким образом, вы хотите, чтобы пользователь мог дважды щелкнуть строку, чтобы строка находилась в режиме редактирования inline, но имеет ли ячейка, с которой пользователь дважды щелкнул фокус? Я не думаю, что это возможно, потому что начальный двойной щелчок происходит в самой строке. После этого создаются редактируемые элементы. Я думаю, что пользователю просто нужно явно щелкнуть ячейку, которую они хотят отредактировать, после первоначального двойного щелчка. – Rob

+0

Huuumm so so ... Я хочу дважды щелкнуть по строке, но когда я нажимаю, я хочу выбрать содержимое первого поля или поля, которое я с помощью курсора. Как вы думаете, это возможно @Rob? – mailazs

0

Если у вас есть конкретные столбцы в сетке при нажатии на нее следует выбрать его содержимое, то в вашем colmodel добавить этот код в каждую колонку:

{ 
    name: 'TEXT_BOX', 
    index: 'TEXT_BOX', 
    label: 'Notes', 
    width: 100, 
    align: 'left', 
    sortable: false, 
    hidden: false, 
    dataEvents: [ { type: 'click', data: { i: 7 }, fn: function(e) { e.target.select(); } }] 
} 

dataEvents будет выбрать текст в поле ввода, когда вы нажимаете на нее.

0
// Text will get Selected of cell when inline editing 
    $('#gridTableObj').jqGrid({ 
     .... 
     .. 
     afterEditCell : function(rowid, cellname, value, iRow, iCol){ 
      $('#'+rowid+'_'+cellname).select(); // with this the edited cell value will be selected.    
     } 
     ... 
     .. 

    }); 
Смежные вопросы