Как проверить строки подсетки в jquery?

Я использую SubGrid. Я щелкну ссылку «добавить сеанс» во вложенной сетке, которая добавит строки во вложенную сетку. Я могу добавить n количество строк. Теперь мне нужно проверить каждую добавленную строку в подсетке. Как я мог это сделать?

Я вставляю свой код ниже...

//This is my jqgrid code:

function loadSubGrid(subgrid_id, row_id) {

   DayID = $('#DayEvents').getCell(row_id, 'DayID');
    var pager_id;
    subgrid_table_id = subgrid_id + "_t";
    pager_id = "p_" + subgrid_table_id;
    $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");

    jQuery("#" + subgrid_table_id).jqGrid({
        url: 'Event.asmx/GetSubGridDay',
        datatype: 'json',
        mtype: 'POST',
        cellEdit: false,
        cellsubmit: 'clientarray',
        onCellSelect: GridCellClick,
        ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
        serializeGridData: PrepareGridPostData,
        jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
        colNames: ['sessionId', 'session', 'start time', 'end time', 'Speaker'],
        colModel:
                          [{ name: 'SessionId', index: 'SessionId', width: 90, formatter: 'text', align: 'center', hidden: true },
                          { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                          { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataInit: function(element) {
                              $(element).timepicker({})
                          }, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]}
                          },
                          { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataInit: function(element) {
                              $(element).timepicker({})
                          }, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]}
                          },

                            { name: 'Speaker', index: 'Speaker', width: 300, editable: false, formatter: 'showlink', formatoptions: { baseLinkUrl: 'javascript:', showAction: "Speaker('", addParam: "');"} },


                          ],
        rowNum: 10,
        height: 'auto',
        autowidth: true
    });

}

Теперь в этой строке в приведенном выше коде вызывается функция для открытия диалогового окна.

 { name: 'Speaker', index: 'Speaker', width: 300, editable: false, formatter: 'showlink', formatoptions: { baseLinkUrl: 'javascript:', showAction: "Speaker('", addParam: "');"} },

Ниже приведена функция открытия диалогового окна:

function Speaker() {


        $("#SpeakerPopUp").dialog('open');

        $("#SpeakerPopUp").dialog(
{

    autoOpen: true,
    height: 500,
    width: 500,
    modal: true,
    title: 'Speakers List',
    open: gridData,
    buttons: {
        'cancel': function CancelCheck() { $(this).dialog('close'); },
        'Save': SpeakerSelectionSave
    }
});
    }

}

Теперь мне нужно, чтобы он не открывал диалоговое окно, если какой-либо из столбцов в этой строке подсетки пуст. Пожалуйста, помогите мне. Надеюсь, я ясно объяснил свою потребность.


person Community    schedule 30.08.2012    source источник
comment
@tpeczek Пожалуйста, помогите мне в этом ..   -  person    schedule 30.08.2012
comment
Просто для ясности: все строки поступают с сервера, но вы не уверены, что все столбцы заполнены в базе данных, верно?   -  person tpeczek    schedule 30.08.2012
comment
@tpezek Я динамически добавляю строки в подсетку. Так что изначально он будет пустым.   -  person    schedule 30.08.2012
comment
Лучшим способом кажется пользовательский форматтер, но я посмотрю, можно ли этого добиться с помощью вашего подхода.   -  person tpeczek    schedule 30.08.2012
comment
@Nick Craver Пожалуйста, помогите мне в этом ..   -  person    schedule 30.08.2012
comment
@ karim79 Пожалуйста, дайте мне решение для этого ..   -  person    schedule 30.08.2012


Ответы (1)


Просто вставьте следующие строки в динамик функции перед $("#SpeakerPopUp").dialog('open');

     if (_lastSelRow == null) { alert("enter all"); }
            else {

                alert("test" + _lastSelRow);
                if (($('#' + _lastSelRow + '_SessionName').val() == "") || ($('#' + _lastSelRow + '_StartTime').val() == "") || ($('#' + _lastSelRow + 'EndTime').val() == "")) 
else
{
///
person Community    schedule 31.08.2012