Error handling VisualForce错误:Id值对于联系人标准控制器无效
此错误是由于Id来自$用户Id不是!联系电话。我不知道如何解决这个问题,因为我需要contact.id。因为我将VF页面放在一个自定义链接中,我希望当用户单击该链接时,用他们的联系人字段填充信息。下面是VF页面的代码:Error handling VisualForce错误:Id值对于联系人标准控制器无效,error-handling,contacts,visualforce,Error Handling,Contacts,Visualforce,此错误是由于Id来自$用户Id不是!联系电话。我不知道如何解决这个问题,因为我需要contact.id。因为我将VF页面放在一个自定义链接中,我希望当用户单击该链接时,用他们的联系人字段填充信息。下面是VF页面的代码: <apex:page standardController="Contact"> <apex:form > <apex:pageBlock > <apex:pageBlockSection tit
<apex:page standardController="Contact">
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection title="My Personal Information" >
<apex:outputField value="{!Contact.Name}" />
<apex:outputField value="{!Contact.Phone}"/>
<apex:outputField value="{!Contact.MobilePhone}"/>
<apex:outputField value="{!Contact.Email}"/>
<apex:outputField value="{!Contact.Birthdate}"/>
</apex:pageBlockSection>
<apex:pageBlockSection title="My Travel Information">
<apex:outputField value="{!Contact.Passport__c}"/>
<apex:outputField value="{!Contact.Expiration_Date__c}"/>
<apex:outputField value="{!Contact.VISA__c}"/>
<apex:outputField value="{!Contact.VISA_Expiration_Date__c}"/>
<apex:outputField value="{!Contact.European_Passport__c}"/>
<apex:outputField value="{!Contact.European_Passport_Expiration_Date__c}"/>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
提前谢谢 最简单的方法是使用类似于/apex/YourPageName?id=003的链接访问VF页面。。。在哪里。。。是要显示的联系人的Id 您将自定义链接放置在何处?如果它是在Contact或与Contact相关的情况下,或者是在某个自定义对象上,并且该对象有一个要联系的查找,那么它将工作得最好 你能发布链接定义的截图吗?如果是“在联系人上”,则只需将链接类型更改为Visualforce页面即可。例如,如果它在其他情况下,那么类型应该是URL:/apex/YourPageName?id={!Case.ContactId} 在评论/澄清后编辑 尝试类似的方法,您将需要一个apex类+VF页面:
public class PersonalInfoEditor{
public Contact con {get; set;}
public PersonalInfoEditor(){
List<Contact> contacts = [SELECT Id, FirstName, LastName, Phone, ... FROM Contact WHERE OwnerId = :UserInfo.getUserId() LIMIT 1]; // use your lookup instead of my OwnerId here
if(contacts.isEmpty()){
con = new Contact(OwnerId = UserInfo.getUserId()); // none found? let's prepare to save a new Contact for this user
} else {
con = contacts[0]; // found? then let's use him
}
}
public void save(){
upsert con;
}
}
<apex:page controller="PersonalInfoEditor" tabStyle="Contact">
<apex:form >
<apex:pageBlock >
<apex:pageBlockButtons location="bottom">
<apex:commandButton value="Save" action="{!save}" />
</apex:pageBlockButtons>
<apex:pageBlockSection title="My Personal Information" >
<apex:inputField value="{!con.Phone}" />
<apex:inputField value="{!con.Email}" />
...
你好谢谢你的回答。是主页上的自定义链接。我尝试使用VisualForce页面和URL作为内容源,这两个选项显示相同的错误:Id值[userId]对于联系人标准控制器无效。PS:我不知道如何在此页面中附加屏幕截图。很抱歉如果它在主页上,那么你想显示哪个联系人?你可以在链接中硬编码Id,但那将是一个奇怪的页面。或者,如果您决定此用户应该如何查看此联系人的数据有一定的逻辑,请发布它,然后编辑您的问题?点击问答编辑器中的图像图标可以添加图像。您需要联系人对象的信息还是此用户的信息?我不得不说我有点困惑…我会尽力解释这一点,是的,有点困惑。Salesforce的用户有与此相关的联系人记录。此外,我们有一个配置文件,只允许加载时间卡。是这些用户可以在系统上执行的唯一操作。现在我想允许他们编辑他们的个人信息。该个人信息位于联系人布局上。这就是为什么我想创建这个自定义链接,允许用户只编辑他们在VF页面上选择的字段的联系信息。