Регистрация  |  Вход

Не могу изменить данные

Добрый день. Возможно я ошибся разделом, но не могли бы вы подсказать в чём проблема моего кода, так как я же перечитал и перепробовал многое. Мне нужно, чтобы данные из 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}"/>

Dmitry Shnyrev
<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