title: Telerik Radgrid How to retrieve textbox values from dynamically generated RadGrid columns?
body: <p>I am dynamically creating a RadGrid and adding <code>GridTemplateColumns</code> to it. Those columns have textbox in them.<br>
  After binding datatable to the grid, after user makes changes to the textboxes and on clicking save button, I would like to access the textbox values. But I am stuck at getting hold of the textbox instance. I couldn't even get hold of GridItems!<br>
  To add more complexity, my RadGrid is in a UserControl, which is in a (multi)view.<br>
  Heres the code.  </p>
  
  <pre><code>    protected void Page_Init(object sender, EventArgs e)
      {
          DefineGridStructure();            
      }
      protected void Page_Load(object sender, EventArgs e)
      {
          if (RadGrid1 != null &amp;&amp; RadGrid1.Items.Count &gt; 0)
          {
              string strtxt = ((TextBox)RadGrid1.Items[1]["ProductGroup1"].Controls[0]).Text;//For starters, load one control and check it's state
          }
      }
      private void DefineGridStructure()
      {
          RadGrid1 = new RadGrid();
          RadGrid1.AutoGenerateColumns = false;
          RadGrid1.ShowHeader = true;
          RadGrid1.NeedDataSource += RadGrid1_NeedDataSource;
          foreach(GridColumn qtyColumn in BuildGridQtyColumns(PaxColumnCount))
          {
              RadGrid1.MasterTableView.Columns.Add(qtyColumn);
          }
          //Add grid to page
          phRadGrid.Controls.Add(RadGrid1);
      }
      private List&lt;GridColumn&gt; BuildGridQtyColumns(int count)
      {
          List&lt;GridColumn&gt; qtyColumns = new List&lt;GridColumn&gt;();
          for (int i = 1; i &lt;= count; i++)
          {
              string qtyColumnName = string.Format("ProductGroup{0}", i);
              GridTemplateColumn qtyColumn = new GridTemplateColumn();
              qtyColumn.ItemTemplate = new GridNumberTemplate(qtyColumnName);//Creates a textbox control
              qtyColumn.UniqueName = qtyColumnName;
              qtyColumn.HeaderText = "Qty";
              qtyColumn.HeaderStyle.Width = Unit.Pixel(60);
              qtyColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
  
              qtyColumns.Add(qtyColumn);
          }
          return qtyColumns;
      }
  </code></pre>
  
  <p>Since my control is in view, it's Page_Init is called more than once for each action that involves this view.</p>