Get Value of Html Input Inside TemplateField of GridView
<p>In the following example, I am unable to get the value of the tel input "Contract".  I do not have any issues with the DropDownList.</p>

<p>aspx Code:</p>

<pre><code>&lt;asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
                DataKeyNames="Serial,Model" DataSourceID="ObjectDataSource1" Width="50%" GridLines="None" CellSpacing="-1"&gt;
                    &lt;Columns&gt;
                        &lt;asp:BoundField DataField="Serial" HeaderText="Serial" /&gt;
                        &lt;asp:BoundField DataField="Model" HeaderText="Model"/&gt;
                        &lt;asp:TemplateField HeaderText="Status"&gt;
                        &lt;ItemTemplate&gt;
                            &lt;asp:DropDownList ID="Status" CssClass="dropdownlist" runat="server" onfocus="setSelectedRow(this)" DataValueField="Status" SelectedValue='&lt;%# Bind("Status") %&gt;' onChange="statusChange(this)"&gt;
                                &lt;asp:ListItem Value="RENT READY"&gt;Rent Ready&lt;/asp:ListItem&gt;
                                &lt;asp:ListItem Value="ON RENT"&gt;On Rent&lt;/asp:ListItem&gt;
                                &lt;asp:ListItem Value="OOS"&gt;Out of Service&lt;/asp:ListItem&gt;
                            &lt;/asp:DropDownList&gt;                               
                            &lt;input type="tel" id="Contract" onfocus="setSelectedRow(this)" value= '&lt;%# Eval("Contract") %&gt;' placeholder="Contract #" class='&lt;%# (string)Eval("Status") == "ON RENT" ? "textBox" : "textBoxHidden" %&gt;'&gt;&lt;/input&gt;
                        &lt;/ItemTemplate&gt;
                    &lt;/asp:TemplateField&gt;
&lt;/asp:GridView&gt;
</code></pre>

<p>Rendered HTML:</p>

<p><img src="http://i.stack.imgur.com/KQX5D.png" alt="enter image description here"></p>

<p>What I've tried so far:</p>

<pre><code>protected void submit_Click(object sender, EventArgs e)
{
   if (!Page.IsValid) return;
   foreach(GridViewRow row in GridView1.Rows)
   {
      string Serial = row.Cells[0].Text;
      string Model = row.Cells[1].Text;
      string Status = ((DropDownList)row.FindControl("Status")).SelectedValue;
      string Contract =  Any one of the below attempts...

      Sql stored procedure integrating the data back to the server...
   }
}

 string Contract = ((HtmlInputControl)row.FindControl("Contract")).Value;

 string Contract = ((HtmlInputText)row.FindControl("Contract")).Value;

 string Contract = ((TextBox)row.FindControl("Contract")).Text;
</code></pre>

<p>All throw Object Reference Not Set to Instance of Object exception.</p>
