我是一名经验丰富的 PB 开发人员,但主要使用典型的客户端-服务器架构,并且我确实遇到了问题网页表格应用程序部署到IIS7.5 using PB12.5经典.
我正在创建一个可更新的数据对象(Web 服务),它在设计模式下完美工作,但是当从部署的 IIS 服务器运行时,我将所有列设置为正选项卡顺序(可编辑),看起来好像它们的 Tab 键顺序为零。我无法选择行,无法将焦点集中到列,唯一有效的是添加到数据对象的一些按钮(通用插入和删除)。
我已经尝试了 Web Generation 选项卡下数据对象设计中的所有可能选项,包括 HTML/XHTML、HTML、XHTML、XML 等。我尝试检查所有 Javascript 生成复选框(生成 JS、客户端事件、客户端验证、计算字段) 、客户端格式化、客户端可编写脚本、生成 DDDW 帧,但这都没有帮助。
我已经尝试了所有三种分页方法:XMLClientSide、PostBack、Callback。请注意,我的分页工作正常。我只是无法使可编辑列(具有正 Tab 键顺序)获得焦点!这通常是新手会犯的错误,但 Web 表单部署中有些不同,我需要帮助。
我的数据对象类型是表格。 Web服务更新,我已经通过数据对象预览尝试了所有Web服务功能。我在同一台计算机上运行 IIS 7.5。已安装所有运行时 DLL。项目对象中的Win32动态库文件中包含了Sybase.PB.WebService.Runtime.dll、RuntimeRemoteLoader.dll、WSDL.dll、WSDLRemoteLoader.dll。 Win32动态库文件中包含了dataservice非可视dll。我对基本 SQL 数据源数据对象也有同样的问题。
我已经包含了窗口编辑源中的片段,其中涵盖了 HTML 的主要数据对象部分和one已部署的 Web 表单应用程序的数据对象的行,希望有一些识别信息:
首先是源的数据对象部分:
<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">
下一行的源代码:
<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();}"/>
有其他人经历过这种情况吗?如果有,解决方案是什么?有人问我是否尝试过不同的浏览器,我尝试过Chrome和IE。
非常感谢。
2012 年 11 月 11 日添加:我会根据成员提出的评论和问题事后添加一些有用的信息。
我尝试过哪些浏览器?我尝试过 IE(32 和 64 位)版本 9.0.8112.16424、Chrome 版本 23.0.1271.64 m,两者都不允许编辑制表符顺序大于零的列。
IE应该是支持的,所以我决定在这个浏览器上多加尝试。我正在 Windows 2008 R2 Server 上进行测试,显然出于安全原因,Microsoft 在服务器上自动打开了 Internet Explorer 增强安全性。增强的安全性使浏览器使用起来非常烦人,并且必须禁用 JavaScript,这最终导致 Web 表单数据窗口无法按我的预期运行。我通过以下方式关闭了 IE 增强安全性这些说明 http://blogs.technet.com/b/thailand/archive/2012/09/13/how-to-disable-internet-explorer-enhanced-security-configuration-in-windows-server-2012.aspx,并且中提琴 Web 表单应用程序成功了!
2013 年 7 月 2 日添加:有评论询问我是否查看生成的 Javascript/CSS/HTML 并确定非 IE 浏览器中出现的问题,我必须承认,我没有花太多时间研究为什么非 IE 浏览器无法工作(如果有人这样做的话)弄清楚这一点请添加评论。
**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.