对PB11生成WebForm时页面上按钮效果的修改

来源:互联网 发布:网络购票身份证待核验 编辑:程序博客网 时间:2024/06/05 15:23

对PB11生成WebForm时页面上按钮效果的修改

PB11能将PB做的C/S程序直接转换成.net2 的B/S应用,即WebForm。应用中发现一些问题,所以需要修改系统带的JS文件以及增加自己的JS处理。
   
  --- 现象

  如果窗口上的按钮文字是中文,特别是使用的小字体、按钮高度不足够高时就会出现汉字的顶边被削掉2-3个点的情况,下图是示意:


看起来汉字显示不全,严重影响美观!有意思的是build 6501以前的版本未出现此问题。

所以,本人增加了一个函数,在页面初始化后客户端调用如下函数即可解决:

function My_AlterButton ( )
{
var allButtons = document.getElementsByTagName("button");
for (var i=0; i<allButtons.length; i++)
{
     oButton = allButtons;
     if(oButton.getAttribute("pbtype") =="button")
     {
  oDiv = document.getElementById(oButton.id + "_div");  //图片按钮无ID
  if(oDiv) {
   var wc = document.getElementById(oButton.id + "_div").getElementsByTagName("td")[0];
   wc.style.lineHeight="150%";   //这是影响因素,原始生成的是: line-height:100%
  }
     }
}
}

这是依据PB11生成B/S页面后,按钮在HTML文档中具有如下结构形式编写的:

.....
<button pbtype="button" id="xxxx" ....>
  <div id="xxxx_div" .....>
    <table 无ID 无name .....>
      <tr>
         <td ....>按钮文字</td>
      </tr>
    </table>
  </div>
</button>
.......

那么这个函数怎么用? 放到哪里去呢?

调试中发现,每个C/S窗口生成的B/S页面显示时,都要调用 PBWindows.js 中的PBWindowManager_Init1 函数,所以,我们可以将它放到这里:

//原来的
function PBWindowManager_Init1(strID, strDefaultBtnID, strCancelBtnID)
{
var oNewWindow = this.Get(strID);
  
if (strCancelBtnID != "")
{
  oNewWindow.strCancelBtn = document.getElementById(strCancelBtnID);
}
if (strDefaultBtnID != "")
{
  oNewWindow.strDefaultBtn = document.getElementById(strDefaultBtnID);
}
}

//加了扩充函数的
function PBWindowManager_Init1(strID, strDefaultBtnID, strCancelBtnID)
{
var oNewWindow = this.Get(strID);
  
    My_AlterButton();

if (strCancelBtnID != "")
{
  oNewWindow.strCancelBtn = document.getElementById(strCancelBtnID);
}
if (strDefaultBtnID != "")
{
  oNewWindow.strDefaultBtn = document.getElementById(strDefaultBtnID);
}
}

这样扩充后的效果见下图:

原创粉丝点击