title: apex:commandButton in visualforce component does not call controller method
body: <p>I have a commandButton in a visualforce component.  The expected behavior is that the controller method would be called.  The page is refreshed, but the method registered in the commandButton <code>{!performUnlinkContact}</code> is not called.  The strange thing is that if I put the button on the base visualforce page, it calls the controller method as expected - but when in a component, it does not.</p>
  
  <p>Here is my component:</p>
  
  <pre><code>&lt;apex:component &gt;
      &lt;apex:attribute name="rk" description="RK Base Contact Data"  type="Object" required="true"/&gt;
  
      &lt;div class="unlinkBox"&gt;
          &lt;div class="unlinkHeader"&gt;
              &lt;div class="unlinkHeaderLeft"&gt;Wrong Contact?&lt;/div&gt;
              &lt;div class="unlinkHeaderRight"&gt;&lt;a href=""  onclick="return hideUnlinkPanel()"&gt;&lt;apex:image style="cursor: pointer;" value="{!$Resource.x}" alt="Close Panel" /&gt;&lt;/a&gt;&lt;/div&gt;
          &lt;/div&gt;
          &lt;div class="unlinkBody"&gt;
              &lt;div class="unlinkBodyLeft"&gt;
                  Click Yes if the Contact displayed is incorrect.&lt;br/&gt;&lt;br/&gt;You will be given the opportunity to link to a different Contact.
              &lt;/div&gt;
              &lt;div class="unlinkBodyRight"&gt;
                  &lt;apex:outputpanel id="callMethod"&gt;
                      &lt;apex:commandbutton value="Yes, this is the wrong contact" action="{!performUnlinkContact}" rerender="" status="myDisplayStatus" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a onclick="return hideUnlinkPanel()" style="color:blue;cursor:pointer;text-decoration:underline"&gt;No&lt;/a&gt;
                  &lt;/apex:outputpanel&gt;
                  &lt;apex:actionStatus id="myDisplayStatus"  startText="(performing Contact Unlink...)"  stopText=""/&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/div&gt;
  &lt;/apex:component&gt;
  </code></pre>
  
  <p>and here is the method in the controller extension:</p>
  
  <pre><code>public PageReference performUnlinkContact() {
       System.debug('==================================!!performUnlink');
      if (this.thisLead.rkContactId__c != 0) {
          this.thisLead.rkContactId__c = 0;
  
          update this.thisLead;
      }
  
      return null;
  }
  </code></pre>
  
  <p>I'm sure I must be doing something wrong since I am new to salesforce and still learning, but I am unable to find any related issues when I search on how to resolve this issue.  Thanks in advance for the help.</p>