如何使用C#获取地址(街道)?

时间:2014-06-01 12:45:30

标签: c# dynamics-crm-2011 dynamics-crm-2013

我正在执行查询,当我使用以下 ColumnSet 时,它可以正常工作。

...
ColumnSet = new ColumnSet(
  "name", 
  "address1_postalcode",
  "beep_cin",
  "telephone1",
  //"address1_street1", 
  "address1_city"),
...

然而,当我取消注释街道参考时,我收到一个错误,告诉我这样的属性不存在。我猜它与复合控件有关。

  1. 如何在CRM 2013中访问CRM 2011中的 address1_street1
  2. 为什么我可以访问其他地址_... 字段,例如我以前但不是 street1
  3. 修改

    我还发现,即使在客户端上,使用JavaScript,似乎也有些奇怪。让我们尝试运行以下两行( frames [0] ,因为它在IE控制台窗口中的工作方式, F12 )。

    frames[0].Xrm.Page.getAttribute("address1_street1").getValue()
    frames[0].Xrm.Page.getAttribute("address1_city").getValue()
    

    虽然第一个给了我 Stockholm ,但是秒数会产生错误,因为返回的属性是 null ,尽管我已经进入街道了应该。此外,我注意到以下行:

    frames[0].Xrm.Page.getAttribute("address1_composite").getValue()
    

    返回整个复合地址文本 - 街道,城市,国家等。在该属性中,有一个名为 controls 的对象,但我没有找到任何有用的内容。这很奇怪而且出乎意料。我不喜欢奇怪和意想不到的结合。

    请注意,它是CRM13版本中出现的奇怪现象。

    当然,我可以使用下面的this atrocity,但这真的是我们想要在每个CRM开发人员的屏幕上看到的吗?!它使我的眼睛流血,我的意志生活马肩隆。

    Xrm.Page.getControl("address1_composite_compositionLinkControl_address1_line1")
    

    此外,我仍然没有获得价值,我仍然无法在C#中看到如何使用它!

1 个答案:

答案 0 :(得分:3)

我不知道您要检索哪个实体,但通常Address 1: Street1字段的逻辑名称为address1_line1

此处为帐户实体的属性元数据:

http://msdn.microsoft.com/en-us/library/gg328057(v=crm.5).aspx#bkmk_attributes