Answered by:
Object reference not set to an instance of an object.

Question
-
User-1473011517 posted
Help
=>
protected void btn1_Click(object sender, EventArgs e)
{
HLable.Text= (DetailsView1.FindControl("DateS1") as TextBox).Text;
}=>
<asp:TemplateField HeaderText="Subject I">
<ItemTemplate>English (02)
<asp:TextBox ID="DateS1" runat="server" Text="02/09/2016" TextMode="SingleLine"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>Error
=>
Object reference not set to an instance of an object.
Friday, September 2, 2016 9:31 AM
Answers
-
User283571144 posted
Hi vijaypwr61,
vijaypwr61
Object reference not set to an instance of an object.This error is caused by FindControl method don't find the control.
As far as I know, if you want to find the textbox in DetailsView1, you need know its row index.
Then you could use findcontrol method find the textbox in DetailsView's row.
More details, you could refer to follow codes:
Html:
<div> <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" AutoGenerateRows="False" DataKeyNames="Id" DataSourceID="SqlDataSource1"> <Fields> <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" /> <asp:TemplateField HeaderText="City" SortExpression="City"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("City") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("City") %>'></asp:TextBox> </InsertItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("City") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Subject I"> <ItemTemplate> English (02) <asp:TextBox ID="DateS1" runat="server" Text="02/09/2016" TextMode="SingleLine"></asp:TextBox> </ItemTemplate> </asp:TemplateField> </Fields> </asp:DetailsView> <br /> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MysqlConnectionString %>" SelectCommand="SELECT * FROM [City]"></asp:SqlDataSource> </div>
Code-behind:
protected void Button1_Click(object sender, EventArgs e) { TextBox tex =(TextBox)DetailsView1.Rows[0].FindControl("DateS1"); Label2.Text = tex.Text; }
Best Regards,
Brando
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Friday, September 2, 2016 12:01 PM
All replies
-
User283571144 posted
Hi vijaypwr61,
vijaypwr61
Object reference not set to an instance of an object.This error is caused by FindControl method don't find the control.
As far as I know, if you want to find the textbox in DetailsView1, you need know its row index.
Then you could use findcontrol method find the textbox in DetailsView's row.
More details, you could refer to follow codes:
Html:
<div> <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" AutoGenerateRows="False" DataKeyNames="Id" DataSourceID="SqlDataSource1"> <Fields> <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" /> <asp:TemplateField HeaderText="City" SortExpression="City"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("City") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("City") %>'></asp:TextBox> </InsertItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("City") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Subject I"> <ItemTemplate> English (02) <asp:TextBox ID="DateS1" runat="server" Text="02/09/2016" TextMode="SingleLine"></asp:TextBox> </ItemTemplate> </asp:TemplateField> </Fields> </asp:DetailsView> <br /> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MysqlConnectionString %>" SelectCommand="SELECT * FROM [City]"></asp:SqlDataSource> </div>
Code-behind:
protected void Button1_Click(object sender, EventArgs e) { TextBox tex =(TextBox)DetailsView1.Rows[0].FindControl("DateS1"); Label2.Text = tex.Text; }
Best Regards,
Brando
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Friday, September 2, 2016 12:01 PM -
User-1473011517 posted
Thank you.
Saturday, September 3, 2016 2:44 PM