Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
Поскажите пожалуйста как осуществить "мечту" :)) есть dynaGrid (2 строки, 3 колонки) задача такая: при клике на строку (1 или 2) 1-ю колонку отобразить в ячейки поле типа checkbox с возможностью воткнуть птичку, при уходе с ячейки отобразить слово ("да" или "нет") в зависимости от выбранного варианта checkbox при клике на строку (1 или 2) 2-ю колонку отобразить в ячейки поле типа select с вариантами выбора, при уходе с ячейки отобразить выбранное в select значение третья колонка просто текст Как мне это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 18:52 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
Очень просто, есть такой VSFlextGrid (продукт от Videosoft) Там это делается без труда ! Лично я этим Grid-ом пользуюсь давно. Считаю его среди лучших . Конечно, смотря что Вы разрабатываете и на какой платформе ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 09:22 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
ссылочку не дадите желательно с примером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 11:18 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
http://www.componentsource.com/features/index.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:32 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
Пример на VB не знаю если подойдет ... 1. Ставим птичку в выбранный ряд в первой ячеки, клавиша "Insert" : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. итд 2.Убираем птичку, клавиша "Del" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Кусочек кода, прямо из рабочей программы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 14:24 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
немного не то )) мне нужно для Cache технология Zen ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 17:22 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
Ymka2007немного не то )) мне нужно для Cache технология Zen на веб странички можно вставлять iGrid компании 10tec http://www.10tec.com/home/Products/ActiveX/iGrid/index.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2008, 18:29 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
я понимаю что можно, но как мне это сделать в ZEN, конкретно в dinaGrid ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2008, 18:38 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
Ничего нужного не нашел с английским худо, пока не спрашивал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 09:43 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
Class p6.zen.component.addDynaGrid Extends %ZEN.Component.dynaGrid { Property OnCreateDataSet As %ZEN.Datatype.delegator(FORMALSPEC = "pGrid:%ZEN.Component.dynaGrid,pDataSet:%ZEN.Auxiliary.dataSet,pConfigSet:%ZEN.Auxiliary.dataSet", RETURNTYPE = "%Status"); /// Label-указывает на тип контрола<br> /// 1-edit<br> /// 2-edit with date verify<br> /// 3-select<br> /// 4-checkbox<br> /// 5-multiline edit<br> /// 6-edit with time verify<br> /// Value в строке<br> /// для select- варианты выбора(без пустого!)<br> /// для checbox 1-что показывать если true; 2-если false<br> /// для multiline - колво строчек Property configSet As %ZEN.Auxiliary.dataSet(ZENSETTING = 0); Method %CreateDataSet() As %Status { Set $ZT="Trap" Set tSC = $$$OK Set tHost = $S($IsObject(..composite):..composite,1:$G(%page)) If ($IsObject(tHost) && (..OnCreateDataSet '= "")) { #; dispatch Set tSC = $zobjmethod(tHost,..OnCreateDataSet,%this,..dataSet,..configSet) } Done Quit tSC Trap Set $ZT="" Set tSC = $$$ERROR($$$GeneralError,$ZE) Goto Done } /// Return the HTML that renders the cell editor for the given cell. /// <var>r</var> and <var>c</var> are 1-based. Method getEditCellHTML(r, c, value) [ Language = javascript ] { // test for user callback var html = ''; var usercode = ''; if (this.oneditcell) { usercode = zenInvokeCallbackMethod(this.oneditcell,this,'oneditcell','value',value); } if (usercode && '' != usercode) { html = usercode; } else { var configSet = this.getConfigSet(); var type=configSet.getLabel(c-1,2); switch(type) { case "2": html = '<input class="dynaGridInput" id="cellEditor" type="text" value="'+zenEscapeXML(value)+'" onblur="zenPage.getComponent('+this.index+').stopEditCell(false,2);">'; break; case "3": html='<select class="dynaGridInput" id="cellEditor" onblur="zenPage.getComponent('+this.index+').stopEditCell(false,3);">'; html=html+'<option value=""></option>'; var i=0 while(true) { var data=configSet.getData(i,c-1); if(data=="") break; if(value==data)html=html+'<option value="'+i+'" selected>'+data+'</option>'; else html=html+'<option value="'+i+'">'+data+'</option>'; i++; } html=html+'</select>'; break; case "4": if(value==configSet.getData(0,c-1)) html='<input class="dynaGridInput" id="cellEditor" type="checkbox" value="'+zenEscapeXML(value)+'" onblur="zenPage.getComponent('+this.index+').stopEditCell(false,4);" checked>'; else html='<input class="dynaGridInput" id="cellEditor" type="checkbox" value="'+zenEscapeXML(value)+'" onblur="zenPage.getComponent('+this.index+').stopEditCell(false,4);">'; break; case "5": html = '<TEXTAREA class="dynaGridInput" id="cellEditor" rows='+configSet.getData(0,c-1)+' onblur="zenPage.getComponent('+this.index+').stopEditCell(false,5);">'+zenEscapeXML(value)+'</textarea>' break; case "6": html = '<input class="dynaGridInput" id="cellEditor" type="text" value="'+zenEscapeXML(value)+'" onblur="zenPage.getComponent('+this.index+').stopEditCell(false,6);">'; break; default: html = '<input class="dynaGridInput" id="cellEditor" type="text" value="'+zenEscapeXML(value)+'" onblur="zenPage.getComponent('+this.index+').stopEditCell(false);">'; break; } } return html; } /// Stop editing of the current cell.<br> /// If <var>cancel</var> is true, then do not save current control value. /// mode -режим работы для разных типов(в соответствии с configSet) Method stopEditCell(cancel, mode) [ Language = javascript ] { cancel = (null==cancel) ? false : cancel; var value; var configSet = this.getConfigSet(); if (this.currDiv && this.cellHasFocus) { // get rid of edit control in cell; save value this.cellHasFocus = false; this.F2Mode = false; var cell = this.window.document.getElementById("cellEditor"); zenASSERT(cell,"Unable to find cellEditor control",arguments); if (cell) { if(cancel) { value=this.getCellValue(this.currRow, this.currColumn); }else { type=configSet.getLabel(this.currColumn-1,2) switch(type) { case "2": value=this.NormalizeDate(cell.value); break; case "3": var parentNode=cell.parentNode; if(cell.value=="") { value=""; }else{ //-1+1 - чтоб JS трактовал как число value=configSet.getData((cell.value-1+1),this.currColumn-1); } break; case "4": if(cell.checked) value=configSet.getData(0,this.currColumn-1); else value=configSet.getData(1,this.currColumn-1); break; case "6": value=this.NormalizeTime(cell.value); break; default: value = cell.value; break; } } this.currDiv.onclick = this.oldOnclick; this.setCellValue(value, this.currRow, this.currColumn); cell.value = ''; } this.currDiv = null; // invoke cell onchangecell callback, if present if (!cancel) { zenInvokeCallbackMethod(this.onchangecell,this,'onchangecell'); } // invoke grid-wide onchange callback, if present zenInvokeCallbackMethod(this.onchange,this,'onchange'); // give focus back to invisible control this.focus(); } } Method NormalizeDate(aDate As %String = "") As %String [ CodeMode = expression, ZenMethod ] { ##class(p6.dt.Date).LogicalToDisplay(##class(p6.dt.Date).DisplayToLogical(aDate)) } Method NormalizeTime(aTime As %String = "") As %String [ CodeMode = expression, ZenMethod ] { ##class(p6.dt.Time).LogicalToDisplay(##class(p6.dt.Time).DisplayToLogical(aTime)) } Method %OnNew(initvalue As %CacheString) As %Status [ Private, ProcedureBlock = 1 ] { #; make sure we have a dataSet property Set ..dataSet = ##class(%ZEN.Auxiliary.dataSet).%New(2) Set ..configSet = ##class(%ZEN.Auxiliary.dataSet).%New(2) Do:$IsObject($G(%page)) %page.%AddComponent(..dataSet) Do:$IsObject($G(%page)) %page.%AddComponent(..configSet) Quit $$$OK } /// Return the dataSet object associated with this grid. Method getConfigSet() [ Language = javascript ] { var controller = this.getController(); return (controller ? controller : this.configSet); } /// Client-side method to render this component. Method renderContents() [ Language = javascript ] { var controller = this.getController(); if (null == controller) { // try to connect to dataController this.connectToController(); } var encDiv = this.getEnclosingDiv(); // test if we have not been rendered yet if (encDiv == null) return; // build HTML for grid var html = new Array(); // use hidden control to make sure there is a value to submit html[html.length] = '<input type="hidden" id="'+this.makeId('control')+'" name="'+this.name+'" value="'+this.value+'">'; html[html.length] = '<table id="'+this.makeId('table')+'" class="'+this.gridClass+'" border="0" cellspacing="0" cellpadding="0">'; var dataSet = this.getDataSet(); var cols = dataSet.getDimSize(2); if (cols < 2) { this.F2Mode = true; } else { this.F2Mode = false; } if (zenIsMissing(dataSet)) { html[html.length] = '<tr><td>dynaGrid has no data.</td></tr>'; } else { zenASSERT(dataSet.getDimensions()>0,"dataSet must have at least one dimension.",arguments); // column headers if (this.showColumnLabels) { html[html.length] = '<tr>'; if (this.showRowLabels) { // gridLabel in corner var glbl; if (dataSet.getDimensions() > 2) { // 3-D grid: show page label glbl = dataSet.getLabel(this.currPage-1,3); glbl = (''==glbl? this.currPage : glbl); glbl = '<a onclick="zenPage.getComponent('+this.index+').previousPage();">«</a>' + ' ' + '<a onclick="zenPage.getComponent('+this.index+').nextPage();">»</a> ' + glbl; } else { glbl = (''==this.gridLabel?' ':this.gridLabel); } html[html.length] = '<th nowrap="1" id="gridLabel_'+this.index+'" class="dynaGridLabel"'+'>'+glbl+'</th>'; } for (var c = 0; c < cols; c++) { var cinfo = this.getColumnInfo(c); if (cinfo && cinfo.hidden) continue; var data = dataSet.getLabel(c,2); data = ('' == data) ? ' ' : data; var thstyle = ''; var thtip = ''; html[html.length] = '<th nowrap="1" id="thCol_'+(c+1)+'_'+this.index+'" class="dynaGridColumn"'+' onclick="zenPage.getComponent('+this.index+').columnLabelHandler('+(c+1)+');">' + data + '</th>'; } html[html.length] = '</tr>'; } // data: D1(rows) D2(cols) for (var r = 0; r < dataSet.getDimSize(1); r++) { var rinfo = this.getRowInfo(r); if (rinfo && rinfo.hidden) continue; var rstyle = (null!=rinfo&&null!=rinfo.style) ? rinfo.style : ''; var rtip = (null!=rinfo&&null!=rinfo.title) ? rinfo.title : ''; var rro = (null!=rinfo&&null!=rinfo.readOnly) ? rinfo.readOnly : false; var rhgt = (null!=rinfo&&null!=rinfo.height) ? (''!=rinfo.height?' height="'+rinfo.height+'"':'') : ''; html[html.length] = '<tr'+rhgt+'>'; // label if (this.showRowLabels) { var data = dataSet.getLabel(r,1); data = ('' == data) ? ' ' : data; html[html.length] = '<th nowrap="1" id="thRow_'+(r+1)+'_'+this.index+'" class="dynaGridRow"'+' onclick="zenPage.getComponent('+this.index+').rowLabelHandler('+(r+1)+');">' + data + '</th>'; } for (var c = 0; c < cols; c++) { var cinfo = this.getColumnInfo(c); if (cinfo && cinfo.hidden) continue; var tdstyle = rstyle; var tdtip = rtip; var cro = (null!=cinfo) ? cinfo.readOnly : false; if (null!=cinfo) { tdstyle += cinfo.style; tdtip = (''!=cinfo.title) ? cinfo.title : tdtip; } if ('' != tdstyle) { tdstyle = ' style="'+tdstyle+'"'; } if ('' != tdtip) { tdtip = ' title="'+tdtip+'"'; } var events = ' onclick="zenPage.getComponent('+this.index+').cellClickHandler('+(r+1)+','+(c+1)+');" ondblclick="zenPage.getComponent('+this.index+').cellDblClickHandler('+(r+1)+','+(c+1)+');"' var data = dataSet.getData(r,c,this.currPage-1); data = this.getCellContents(data,r+1,c+1); var cls = (this.currRow == (r+1) && this.currColumn == (c+1)) ? ' class="selected"' : ''; html[html.length] = '<td nowrap="1" valign="middle"'+tdstyle+tdtip+'>'; if (!insertInput) { // insert invisible input to catch key events html[html.length] = '<input type="text" id="'+this.makeId('invisible')+'" style="top:0px;left:0px;position:absolute;border: 0px solid green;width:0;height:0;" onkeydown="zenPage.getComponent('+this.index+').gridKeyDownHandler(event);" onkeypress="zenPage.getComponent('+this.index+').gridKeyPressHandler(event);" onfocus="zenPage.getComponent('+this.index+').gridKeyFocus();" onblur="zenPage.getComponent('+this.index+').gridKeyBlur();"/>'; var insertInput=true; } html[html.length] = '<div id="td_'+(r+1)+'_'+(c+1)+'_'+this.index+'" '+events+cls+'>'+data+'</div>'; html[html.length] = '</td>'; } html[html.length] = '</tr>'; } } html[html.length] = '</table>'; //alert(html.join('')); encDiv.innerHTML = html.join(''); this.adjustSizes(); } /// Set the value of grid cell; Row and column are 1-based. Method setCellValue(value, r, c) [ Language = javascript ] { var dataSet = this.getDataSet(); var configSet = this.getConfigSet(); var type=configSet.getLabel(c-1,2) if (!zenIsMissing(dataSet)) { switch(type) { case "2": value=this.NormalizeDate(value); break; case "6": value=this.NormalizeTime(value); break; default: break; } dataSet.setData(value,r-1,c-1,this.currPage-1); // if there is a controller, notify it var controller = this.getController(); if (controller) { // note: series # is 1-based this.sendEventToController('propertyChange',controller.getPropertyName(r-1),value,c); } } var div = this.findElement("td_"+r + "_" + c); if (div) { value = this.getCellContents(value,r,c); div.innerHTML = value; } } } Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2008, 11:29 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
хм... как мне это применить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 14:53 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
хм... как мне это применить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 15:16 |
|
||
|
dynaGrid ????
|
|||
|---|---|---|---|
|
#18+
Реальный примерчик!!! вроде бы разобрался, спасибо! а есть ли возможность ZEN сомпоненты вставлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 18:34 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35233746&tid=1558925]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 395ms |

| 0 / 0 |
