Добрый день. Возможно я ошибся разделом, но не могли бы вы подсказать в чём проблема моего кода, так как я же перечитал и перепробовал многое. Мне нужно, чтобы данные из 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>
Добрый день. Возможно я ошибся разделом, но не могли бы вы подсказать в чём проблема моего кода, так как я же перечитал и перепробовал многое. Мне нужно, чтобы данные из inputText меняли имя моего объекта Screen, который связан с другими объектами Shortcut. вот мой контроллер: [code] 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; } }[/code] вот то, что я называю страницей: [code] <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>[/code] Заранее благодарю за помощь.
<br> Enter Screen Name : <apex:inputText value="{!NewScreen}"/>
заменить на
<br> Enter Screen Name : <apex:inputText value="{!NewScreen.Name}"/>
<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 в контроллере?
[quote="Dmitry Shnyrev"]<br> Enter Screen Name : <apex:inputText value="{!NewScreen}"/> заменить на <br> Enter Screen Name : <apex:inputText value="{!NewScreen.Name}"/>[/quote] Спасибо за ответ, но теперь при вводе нового имени для 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')];
}
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
Огромнейшее спасибо за помощь, всё заработало.:D:D:D