title: Magento Adminhtml Grid using sales/order_item collection filtered by customer
body: <p>My objective is simple. I have a module called Quotes, I have managed to get Magento to create a new quote record each time a cart is created by changing the is_active column when a quote is 'checked out'. So I have a bunch of quotes each related to a customer and i have sales/order_item rows each related to a quote. 
  I have a page in the backend which displays a grid of all the quotes. When a quote is clicked, the edit page has two tabs, one with a Form.php showing the details of the quote. (customer name, date etc), then I have another tab which should contain a grid of all the items in that quote. It seems so simple:</p>
  
  <pre><code>$this-&gt;addTab("items_section", array(
    "label" =&gt; Mage::helper("quote")-&gt;__("Quote Items"),
    "title" =&gt; Mage::helper("quote")-&gt;__("Quote Items"),
    "content" =&gt; $this-&gt;getLayout()-&gt;createBlock("quote/adminhtml_quotes_edit_tab_cart")-&gt;toHtml(),
  ));
  </code></pre>
  
  <p>Then in my cart block I have this:</p>
  
  <pre><code>protected function _prepareCollection()
  {
      $collection = Mage::getModel('sales/order_item')-&gt;getCollection();
      print_r($collection);
      $this-&gt;setCollection($collection);
  
      return parent::_prepareCollection();
  }
  </code></pre>
  
  <p>I'm not even interested in loading the correct collection (by order_id) because there is a problem ro be solved here first: The <code>print_r</code> statement reveals the collection I specified but passing it to $this->setCollection($collection) gives me 'No records found' rendered in the grid. In typical Magento fashion there are no errors etc. I understand that the model is supposed to query the database as needed but that doesn't seem to be happening. I suppose it's time to read Mage::core files but you can imagine my frustration at such a simple tasking being so complicated so I would appreciate it if anyone who knows what's going on here can help me out. Thanks in advance.</p>