PowerBuilder 12.5 Web Forms - Columns Not Editable or Lost Tab Order upon Deploy

為{幸葍}努か 提交于 2019-12-23 15:49:52

问题


I am a seasoned PB developer, but primarily with the typical client-server architecture and am really having problems with a Web Forms application deployed to IIS7.5 using PB12.5 Classic.

I am creating an updateable dataobject (web service) that works perfectly in design mode, however when run from deployed IIS server, all of the columns I have set to a positive tab order (editable) , appear as if they have a tab order of zero. I cannot select a row, cannot get focus to a column, the only thing that does work are some buttons added to the dataobject (generic insert, and delete).

I have tried every possible option in the dataobject design under the Web Generation tab including, HTML/XHTML, HTML, XHTML, XML, etc. I have tried checking ALL the Javascript generation checkboxes (Generate JS, Client Events, Client Validation, Computed Fields, Client Formatting, Client Scriptable, Generate DDDW Frames but that has helped none.

I have tried all three Paging Methods, XMLClientSide, PostBack, Callback. Note that my paging is working fine. I just cannot make an editable column (with positive tab order) receive focus! This is normally a newbie mistake but something is different in the Web Forms deployment and I need help.

My dataobject type is tabular. Web Service update, and I've tried all the web service functions via dataobject preview. I'm running IIS 7.5 on the same computer. Have installed all the runtime DLL's. Have included the Sybase.PB.WebService.Runtime.dll, RuntimeRemoteLoader.dll, WSDL.dll, WSDLRemoteLoader.dll in the Win32 Dynamic library files in the project object. Have included the dataservice non-visual dll in the Win32 dynamic library files. I have the same problem with basic SQL datasource dataobjects.

I've included snippets from edit-source of my window that covers the main dataobject part of the HTML and the HTML for one row of the dataobject of the deployed web forms application in hopes there might be some identifying info:

First the dataobject part of source:

<div style="position: relative; height: 4.893in; width: 4.666in; background-color: rgb(255, 255, 255); " id="objdw_1_datawindow" bisinit="true" dwname="objdw_1" irowno="-1" icolno="-1" ibandid="-1" igroup="-1" iautoselect="0" gobname="datawindow">

Next one row's worth of source:

<span id="objdw_1_detail_18" class="objdw-111" style="position: absolute; left: 0in; top: 4.435in; width: 100%; height: 0.229in; " onclick="{if (eval ('typeof objdw_1') == 'object') objdw_1.itemClicked(18,-1,'datawindow',0,-1);}" onmousedown="{var ret; ret= objdw_1.itemRButtonDown(18,-1,'datawindow',0); return ret;}">
<input type="text" name="catname_18" id="objdw_1_18_3" size="18" value="Business" class="objdw-116" tabindex="137" style="position: absolute; left: 0.073in; top: 0.021in; width: 2.103in; height: 0.188in; " onfocus="{objdw_1.itemGainFocus(18,3,this,objdw_1.gobs.catname); objdw_1.selectControlContent(this);}" onclick="{var ret; ret= objdw_1.itemClicked(18,3,'catname',0,-1); return ret;}" onchange="{this.bChanged = true;}" onkeypress="return DW_EditKeyPressed(event, this, -1);" onblur="{objdw_1.itemLoseFocus (this);}" onmousedown="{var ret; ret= objdw_1.itemRButtonDown(18,3,'catname',0); return ret;}"/>
<input type="text" name="createdate_18" id="objdw_1_18_4" size="5" value="05/02/11" class="objdw-117" tabindex="-32766" style="position: absolute; left: 3.395in; top: 0.021in; width: 0.656in; height: 0.188in; " readonly="" onfocus="{objdw_1.itemGainFocus(18,4,this,objdw_1.gobs.createdate); objdw_1.selectControlContent(this);}" onclick="{var ret; ret= objdw_1.itemClicked(18,4,'createdate',0,-1); return ret;}" onchange="{this.bChanged = true;}" onblur="{objdw_1.itemLoseFocus (this);}" onmousedown="{var ret; ret= objdw_1.itemRButtonDown(18,4,'createdate',0); return ret;}"/>
<input type="button" name="b_1_18" value="x" class="objdw-118" style="position: absolute; left: 4.188in; top: 0.01in; width: 0.207in; height: 0.208in; " onclick="{objdw_1.buttonPress('DeleteRow',18,'b_1',0,-1); objdw_1.restoreFocus();}"/>
<input type="button" name="b_3_18" value="+" class="objdw-119" style="position: absolute; left: 4.459in; top: 0.01in; width: 0.207in; height: 0.208in; " onclick="{objdw_1.buttonPress('InsertRow',18,'b_3',0,-1); objdw_1.restoreFocus();}"/>

Has anyone else experienced this, and if so what was the solution? A question was asked about whether I've tried different browsers, and I have tried Chrome and IE.

Thank you very much.

Added on 11-11-12: I am adding some useful information after the fact based on comments and questions asked by members.

  1. Which browsers have I tried? I have tried IE (32 & 64 bit) Version 9.0.8112.16424, Chrome Version 23.0.1271.64 m and both did not allow editing of columns having tab order greater than zero.

  2. IE is supposed to be supported so I decided to try harder with this browser. I was testing on Windows 2008 R2 Server and apparently Microsoft automatically turns on Internet Explorer Enhanced Security on a Server for security reasons. The Enhanced Security makes the browser very annoying to use and must have disabled javascript which ended up making the Web Forms datawindow not function as I expected. I turned off the IE Enhanced Security by following these instructions, and viola the Web Forms Application worked!

Added July 2, 2013: There were comments asking if I looked at the generated Javascript/CSS/HTML and determine what is failing in non IE browsers, and I have to admit that I have not spent much time looking into why non-IE browsers are not working if anyone does figure this out please add a comment.

**Summary**: I hoped for a solution, however it looks like the real answer to this question is going to be that IE is the only supported browser. When Sybase says that non-IE browsers are not supported they really mean that non-IE browsers will probably not work.  

回答1:


As it stated by Sybase in the Web forms FAQ, they did not focused much on cross-browser compatibility:

We are evaluating Firefox and Safari for multi-browser support. Menus was implemented with third-party menu webcontrol that renders menu items as hyperlinks.

It is likely that many other functionalities will have a wrong behavior with other browsers than IE :(



来源:https://stackoverflow.com/questions/13165536/powerbuilder-12-5-web-forms-columns-not-editable-or-lost-tab-order-upon-deploy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!