0

我正在尝试创建 javascript 来打开一个对话框。

一旦当前记录上名为“new_mstatus”的字段的值等于“非活动”并且用户打算打开此记录,就会打开一个对话框。

function opendialog() {
   if(Xrm.Page.ui.getFormType() == 1)
   {
       Xrm.Page.data.entity.save(null);
       return;
   }

   // If inactive then trigger dialog
   if (Xrm.Page.getAttribute("new_mstatus").getValue() == 'Inactive') {

       window.open("/" + Xrm.Page.context.getOrgUniqueName() + "/cs/dialog/rundialog.aspx?DialogId=%7b840D55C6-8307-450B-977F-6A9C9844CCE7%7d&EntityName=appointment&ObjectId=" + Xrm.Page.data.entity.getId());

       // Set as being displayed so it doesn't trigger again on load
       Xrm.Page.getAttribute("new_displayeddialog").setValue(true);

   }
}

但它不起作用。甚至没有错误弹出。

有人可以帮帮我吗?

非常感谢。

4

1 回答 1

0

getValue问题是您正在根据字符串(Inactive在您的情况下)检查选项集数值(由函数获取)。

所以你有两种可能性:

  • 找到选项集的值Inactive(这是正确的方法)
// assuming 900000000 is the value for Inactive
if (Xrm.Page.getAttribute("new_mstatus").getValue() == 900000000) {
  • 使用函数获取选项集的标签而不是值getText(不建议,因为如果标签更改将不起作用,例如在多语言环境中)
if (Xrm.Page.getAttribute("new_mstatus").getText() =='Inactive') {
于 2013-04-11T06:32:19.023 回答