webforms - PowerBuilder 12.5 Web 表单 - 列在部署时不可编辑或丢失 Tab 顺序

标签 webforms powerbuilder datawindow powerbuilder.net

我是一名经验丰富的 PB 开发人员,但主要使用典型的客户端-服务器架构,并且在部署到 IIS7.5Web Forms 应用程序方面确实存在问题 < strong>PB12.5 经典.

我正在创建一个在设计模式下完美运行的可更新数据对象(Web 服务),但是当从已部署的 IIS 服务器运行时,我设置为正 Tab 键顺序(可编辑)的所有列,看起来好像他们的 Tab 键顺序为零。我无法选择一行,无法将焦点放在列上,唯一起作用的是添加到数据对象的一些按钮(通用插入和删除)。

我尝试了 Web 生成选项卡下数据对象设计中的所有可能选项,包括 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 数据源数据对象有同样的问题。

我已经包含了来 self 的窗口编辑源代码的片段,这些片段涵盖了 HTML 的主要数据对象部分和已部署的 Web 表单应用程序数据对象的 一行 的 HTML,希望可能有是一些识别信息:

首先是source的dataobject部分:

<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 日:我根据成员(member)提出的评论和问题添加了一些有用的信息。

  1. 我试过哪些浏览器?我试过 IE(32 位和 64 位)版本 9.0.8112.16424,Chrome 版本 23.0.1271.64 m,两者都不允许编辑制表符顺序大于零的列。

  2. IE 应该是受支持的,所以我决定更努力地尝试使用这个浏览器。我在 Windows 2008 R2 Server 上进行测试,显然 Microsoft 出于安全原因自动在服务器上打开 Internet Explorer 增强安全性。增强的安全性使浏览器使用起来非常烦人,并且必须禁用 javascript,这最终导致 Web 窗体数据窗口无法按我预期的方式运行。我按照 these instructions 关闭了 IE 增强安全性,Web Forms Application 成功了!

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.  

最佳答案

正如 Sybase 在 Web forms FAQ 中所述,他们并没有过多关注跨浏览器的兼容性:

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

很可能许多其他功能在 IE 以外的其他浏览器上会有错误的行为 :(

关于webforms - PowerBuilder 12.5 Web 表单 - 列在部署时不可编辑或丢失 Tab 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13165536/

相关文章:

webforms - 什么 DataAnnotation 来创建 SQL Identity 列?

c# - 对象与 Knockoutjs 的绑定(bind)列表

activex - 在我的 PowerBuilder 应用程序中激活 OLEControl 时,工具栏项目消失

textbox - 如何将上标字符添加到 Powerbuilder 文本框中?

Powerbuilder:计算字段的更改是否会触发 itemchanged 事件

pdf - Powerbuilder 12 无法另存为 pdf 数据窗口

c# - 在每个 ajax 请求上执行一段代码

html - 缺少底部的网络表单

introspection - 用于 PowerBuilder 应用程序的 Spy++