На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> Opengrid , Как поместить кнопку в ячейку Opengrid
    Мне понадобилось в одну ячейку Opengrid поместить кнопку Button, можно ли такое сделать?
      Как использовать PopUpMenu в OpenGrid

      Думаю, что можно как-то так
      ExpandedWrap disabled
            function OpenGrid1JSRightClickRow($sender, $params)
            {
                ?>
                //begin js
                    // PopupMenu1.show();
                     popup.show(PopupMenu1.this, 0, 0);
               //end
                <?php
            }
      Но у меня не получается!

      Работает такой вариант, но не силен в JS чтобы довести его до логического завершения

      ExpandedWrap disabled
           function OpenGrid1JSRightClickRow($sender, $params)
            {
                ?>
                //begin js
                    var popup = window.createPopup();
                    var popupBody = popup.document.body;
                    popupBody.style.border = "solid 2px black";
                    popupBody.style.padding = "5px";
                    popupBody.innerHTML = "<P>Это текст в окне popup</P>";
                    popup.show(200, 100, 200, 50, document.body);
                //end
                <?php
            }
      Сообщение отредактировано: kryura -
        Цитата kryura @
        можно ли такое сделать

        можно
        только в ячейке предполагаются значения, а у тебя там будет кнопка
        следовательно редактирование этой ячейки делать нельзя
        Переводиш грид в ReadOnly = true

        и тогда предлагаю такой вариант:
        кнопки генерируем в sql запросе через query
        в данном случае используется MSSQL, таблица _t2 (для примера)
        структура таблицы:
        ExpandedWrap disabled
          CREATE TABLE [dbo].[_t2] (
              [qq] [int] IDENTITY (1, 1) NOT NULL ,
              [ww] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL
          ) ON [PRIMARY]

        запрос с кнопками
        ExpandedWrap disabled
          select *,
          '<button onClick=''alert('+''+cast(qq as varchar(20))+ ''+');''><img src=http://icons.mysitemyway.com/wp-content/themes/busybee/images/mysite/sociable/twitter.png  
                    > ЖМИ МЕНЯ</button>' as 'Показать код поля',
           
          '
          <button >
          <img src=http://icons.mysitemyway.com/wp-content/themes/busybee/images/mysite/sociable/twitter.png  >
          </button>
          <button >
          <img src=http://icons.mysitemyway.com/wp-content/themes/busybee/images/mysite/sociable/facebook.png  >
          </button>
           
          '
          as 'кнопки управления'
           
           
          from _t2
          Цитата vicis @
          и тогда предлагаю такой вариант:
          кнопки генерируем в sql запросе через query
          в данном случае используется MSSQL, таблица _t2 (для примера)

          Спасибо за ответ, получилось!

          Только пришлось немного изменить, но суть от этого не изменилась, запрос в MySQL
          фУНКЦИЮ myButtonClick() пришлось объявить через Page1BeforeShow иначе много геммороя, если нужно очень сложную функцию использовать из-за двойных и одинарных кавычек.
          ExpandedWrap disabled
            function myButtonClick($qq){alert($qq);}
            function prepareZA ()
            {
              //$but=' <input onClick=myButtonClick(1); class="s-submit" type="submit" value="Жми меня" / >';
              // $but='<button onClick=myButtonClick(1); >Жми Меня</button>';
              //$ispFio=" case z.IspFIO  when '' then ".$but." else z.IspFIO end As IspFIO";
               $but1='<button onClick=myButtonClick(';
               $but2='); >Жми Меня</button>';
               $ispFio=" case z.IspFIO  when '' then Concat_Ws('','".$but1."',z.Ind,'".$but2."') else z.IspFIO end As IspFIO";
               $SQ= "SELECT z.Ind,".$ispFio." FROM zaall z";
                return $SQ;
            }
          Сообщение отредактировано: kryura -
            Решил проблему с кнопкой таким способом, этот способ для меня более приемлим, так как можно организовать более сложную проверку для отображения кнопки


            ExpandedWrap disabled
                  function OpenGrid1JSGridComplete($sender, $params)
                  {
                ?>
                //Add your javascript code here
                var ids = jQuery("#OpenGrid1").getDataIDs(); // получаем массив ID
                for(var i=0;i < ids.length;i++)   //бежим по всем отображаемым строкам грида
                {
                  var id_value = ids[i];    // получаем значение перво колонки очередной строки
                  var ret = jQuery("#OpenGrid1").getRowData(id_value);    // получаем объект со значениями полей
                  if (ret.IspFIO=='')
                  {
                     var but="<button onClick=myButtonClick("+ret.Ind+"); >Прийняти</button>";
                     jQuery("#OpenGrid1").setCell(id_value,'IspFIO',but,'');
                  };
                }
              Добрый день!
              Не подскажите как можно сделать такое:

              У меня на форме есть Opengrid

              Открываю форму для редактирования записи, скажем по двойному клику по строке
              ExpandedWrap disabled
                   function OpenGrid1JSDblClickRow($sender, $params)
                    {
                        ?>
                        //begin js
                 
                          features=" left=100,top=0,height=650, width=800, location=no, menubar=no";
                          rez=window.open("zaedit.php?ww=edi&ind="+jQuery('#OpenGrid1').getGridParam('selrow'),"",features);
                 
                        //end
                        <?php
                    }


              После редактирования на форме zaedit.php нажимаю кнопку сохранить
              ExpandedWrap disabled
                    function Button4Click($sender, $params)
                    {
                     global $Dm;
                 
                     $this->SavePage();// здесь сохраняю данные в таблице
                 
                       echo "<script type=\"text/JavaScript\">
                             close(); //здесь закрываю форму zaedit.php
                       </script>";
                    }

              Собственно вопрос: как обновить данные в OpenGrid главной формы, и выделить запись которую только что отредактировали - тоесть загрузить например Page=2, строка с ID=25
                передать в функцию SavePage() номер строки, страницы и признак необходимости перечитывания
                и перечитать главную форму
                здесь ещё посмотри
                Запарка с Frame и FrameSet в D4php... (сообщение #2579716)
                  Нашел решение:

                  ExpandedWrap disabled
                           echo "<script type=\"text/JavaScript\">
                                 window.opener.location.href = 'Zajava.php'; //Здесь можно передать необходимые параметры для обновления главного окна
                                 close(); //здесь закрываю форму zaedit.php
                           </script>";
                  Сообщение отредактировано: kryura -
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0371 ]   [ 16 queries used ]   [ Generated: 19.04.24, 21:30 GMT ]