Добрый день. Возможно я ошибся разделом, но не могли бы вы подсказать в чём проблема моего кода, так как я же перечитал и перепробовал многое. Мне нужно, чтобы данные из inputText меняли имя моего объекта Screen, который связан с другими объектами Shortcut.
вот мой контроллер:
public with sharing class MyController {
public List<Shortcut__c> Shortcuts{ get{
return [SELECT Id, Name, Screen__r.Name, CreatedById FROM Screen__c LIMIT 1000];
} set;}
public Screen__c NewBox { get; set; }
public void getValues(){
NewScreen = [Select Id, Name from Screen__c where Id=:ApexPages.currentpage().getparameters().get('Id')];
}
public PageReference save()
{
update NewScreen;
return null;
}
}<apex:page controller="MyController">
<apex:form >
<apex:pageBlock >
<h1>Edit Screen name</h1>
<br> Enter Screen Name : <apex:inputText value="{!NewScreen}"/>
<apex:commandButton action="{!save}" value="Update Name"/></br>
<apex:pageBlockTable value="{!Shortcuts}" var="c">
<apex:column value="{!c.Name}"/>
<apex:column value="{!c.Screen__r.Name}"/>
<apex:column value="{!c.CreatedById}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
<br> Enter Screen Name : <apex:inputText value="{!NewScreen}"/>
заменить на
<br> Enter Screen Name : <apex:inputText value="{!NewScreen.Name}"/>
Спасибо за ответ, но теперь при вводе нового имени для Screen выскакивает сообщение
Attempt to de-reference a null object
Error is in expression '{!save}' in component <apex:commandButton> in page demo: Class.MyController.save: line 11, column 1
Как я понимаю, тут проблема в том, что я возвращаю null в контроллере?
public void getValues(){
NewScreen = [Select Id, Name from Screen__c where Id=:ApexPages.currentpage().getparameters().get('Id')];
}
надо сделать конструктором
public MyController() {
NewScreen = [Select Id, Name from Screen__c where Id=:ApexPages.currentpage().getparameters().get('Id')];
}
Огромнейшее спасибо за помощь, всё заработало.:D:D:D