Trying to use FindControl


G

Guest

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
Ad

Advertisements

G

Guest

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

Mike Collins said:
I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

Manish Bafna said:
Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

Mike Collins said:
I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

Mike Collins said:
Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

Manish Bafna said:
Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

Mike Collins said:
I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


Manish Bafna said:
Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

Mike Collins said:
Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

Manish Bafna said:
Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Hi,
Try this one:
this.dgMenus.EditItemIndex = e.Item.ItemIndex;
dgMenus.Items[this.DataGrid1.EditItemIndex].FindControl("txtName") as TextBox

Thanks and Regards,
Manish Bafna.
MCP and MCTS.


Mike Collins said:
Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


Manish Bafna said:
Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

Mike Collins said:
Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

:

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
Ad

Advertisements

G

Guest

I had to change your code where you had the "as TextBox" because it caused an
error to the following:

this.dgDropDownMenus.EditItemIndex = e.Item.ItemIndex;
TextBox option =
(TextBox)dgDropDownMenus.Items[this.dgDropDownMenus.EditItemIndex].FindControl("txtName");

Then I got the following error: error: identifier 'option' out of scope,
when I checked the object "option" after running the code. It was not a run
time error, I did a quick watch.

I appreciate your patience and help in trying to help me figure this out.

Manish Bafna said:
Hi,
Try this one:
this.dgMenus.EditItemIndex = e.Item.ItemIndex;
dgMenus.Items[this.DataGrid1.EditItemIndex].FindControl("txtName") as TextBox

Thanks and Regards,
Manish Bafna.
MCP and MCTS.


Mike Collins said:
Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


Manish Bafna said:
Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

:

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Hi,
so finally it was solved or you r still getting some errors?

Mike Collins said:
I had to change your code where you had the "as TextBox" because it caused an
error to the following:

this.dgDropDownMenus.EditItemIndex = e.Item.ItemIndex;
TextBox option =
(TextBox)dgDropDownMenus.Items[this.dgDropDownMenus.EditItemIndex].FindControl("txtName");

Then I got the following error: error: identifier 'option' out of scope,
when I checked the object "option" after running the code. It was not a run
time error, I did a quick watch.

I appreciate your patience and help in trying to help me figure this out.

Manish Bafna said:
Hi,
Try this one:
this.dgMenus.EditItemIndex = e.Item.ItemIndex;
dgMenus.Items[this.DataGrid1.EditItemIndex].FindControl("txtName") as TextBox

Thanks and Regards,
Manish Bafna.
MCP and MCTS.


Mike Collins said:
Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


:

Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

:

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Still an error.

error: identifier 'option' out of scope, when I checked the object "option"
after running the code. It was not a run time error, I did a quick watch and
saw it.

Manish Bafna said:
Hi,
so finally it was solved or you r still getting some errors?

Mike Collins said:
I had to change your code where you had the "as TextBox" because it caused an
error to the following:

this.dgDropDownMenus.EditItemIndex = e.Item.ItemIndex;
TextBox option =
(TextBox)dgDropDownMenus.Items[this.dgDropDownMenus.EditItemIndex].FindControl("txtName");

Then I got the following error: error: identifier 'option' out of scope,
when I checked the object "option" after running the code. It was not a run
time error, I did a quick watch.

I appreciate your patience and help in trying to help me figure this out.

Manish Bafna said:
Hi,
Try this one:
this.dgMenus.EditItemIndex = e.Item.ItemIndex;
dgMenus.Items[this.DataGrid1.EditItemIndex].FindControl("txtName") as TextBox

Thanks and Regards,
Manish Bafna.
MCP and MCTS.


:

Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


:

Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

:

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Hi,
I think the error u r getting in quick watch is the bug in the microsoft
product.See below link:
http://www.kbalertz.com/Feedback_814828.aspx
I think you r now able to get text of textbox in datagrid.


Mike Collins said:
Still an error.

error: identifier 'option' out of scope, when I checked the object "option"
after running the code. It was not a run time error, I did a quick watch and
saw it.

Manish Bafna said:
Hi,
so finally it was solved or you r still getting some errors?

Mike Collins said:
I had to change your code where you had the "as TextBox" because it caused an
error to the following:

this.dgDropDownMenus.EditItemIndex = e.Item.ItemIndex;
TextBox option =
(TextBox)dgDropDownMenus.Items[this.dgDropDownMenus.EditItemIndex].FindControl("txtName");

Then I got the following error: error: identifier 'option' out of scope,
when I checked the object "option" after running the code. It was not a run
time error, I did a quick watch.

I appreciate your patience and help in trying to help me figure this out.

:

Hi,
Try this one:
this.dgMenus.EditItemIndex = e.Item.ItemIndex;
dgMenus.Items[this.DataGrid1.EditItemIndex].FindControl("txtName") as TextBox

Thanks and Regards,
Manish Bafna.
MCP and MCTS.


:

Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


:

Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

:

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
G

Guest

Ok...I'll check it again.

Manish Bafna said:
Hi,
I think the error u r getting in quick watch is the bug in the microsoft
product.See below link:
http://www.kbalertz.com/Feedback_814828.aspx
I think you r now able to get text of textbox in datagrid.


Mike Collins said:
Still an error.

error: identifier 'option' out of scope, when I checked the object "option"
after running the code. It was not a run time error, I did a quick watch and
saw it.

Manish Bafna said:
Hi,
so finally it was solved or you r still getting some errors?

:

I had to change your code where you had the "as TextBox" because it caused an
error to the following:

this.dgDropDownMenus.EditItemIndex = e.Item.ItemIndex;
TextBox option =
(TextBox)dgDropDownMenus.Items[this.dgDropDownMenus.EditItemIndex].FindControl("txtName");

Then I got the following error: error: identifier 'option' out of scope,
when I checked the object "option" after running the code. It was not a run
time error, I did a quick watch.

I appreciate your patience and help in trying to help me figure this out.

:

Hi,
Try this one:
this.dgMenus.EditItemIndex = e.Item.ItemIndex;
dgMenus.Items[this.DataGrid1.EditItemIndex].FindControl("txtName") as TextBox

Thanks and Regards,
Manish Bafna.
MCP and MCTS.


:

Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


:

Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

:

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 
Ad

Advertisements

G

Guest

Thank you for your help. Found out that I had a type in the html of the
datagrid that was causing the problem.

Manish Bafna said:
Hi,
I think the error u r getting in quick watch is the bug in the microsoft
product.See below link:
http://www.kbalertz.com/Feedback_814828.aspx
I think you r now able to get text of textbox in datagrid.


Mike Collins said:
Still an error.

error: identifier 'option' out of scope, when I checked the object "option"
after running the code. It was not a run time error, I did a quick watch and
saw it.

Manish Bafna said:
Hi,
so finally it was solved or you r still getting some errors?

:

I had to change your code where you had the "as TextBox" because it caused an
error to the following:

this.dgDropDownMenus.EditItemIndex = e.Item.ItemIndex;
TextBox option =
(TextBox)dgDropDownMenus.Items[this.dgDropDownMenus.EditItemIndex].FindControl("txtName");

Then I got the following error: error: identifier 'option' out of scope,
when I checked the object "option" after running the code. It was not a run
time error, I did a quick watch.

I appreciate your patience and help in trying to help me figure this out.

:

Hi,
Try this one:
this.dgMenus.EditItemIndex = e.Item.ItemIndex;
dgMenus.Items[this.DataGrid1.EditItemIndex].FindControl("txtName") as TextBox

Thanks and Regards,
Manish Bafna.
MCP and MCTS.


:

Sorry for the incomplete response. Below is the event that is running, and I
am getting an error on the first line of the method "string option..."

private void dgDropDownMenus_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string option = ((TextBox)e.Item.FindControl("txtName")).Text;
Server.Transfer("../surveys/manageansweroptions.aspx?AnswerGroupID=" +
dgDropDownMenus.DataKeys[e.Item.ItemIndex].ToString() + "&CallingPage=Manage
Dropdowns Page&ReturnURL=ManageDropDowns.aspx&option=" +
rblOption.SelectedItem.Value + "&GroupName=" +
dgDropDownMenus.Items[e.Item.ItemIndex].Cells[2].Text);
}


:

Hi,
can you please tell at which line you are getting this error?Most probably
you would be using this line of findcontrol in update event of DataGrid.If
you give details as to where r using this code of findcontrol or in which
event u r using then only i would be able to help you out.

Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

Thanks, but I get an error: Object reference not set to an instance of an
object. Any idea on why that is happening?

:

Hi,
It should be:
DataGrid dgDropDownMenus= (DataGrid)sender;
if(e.Item.ItemType.ToString() != "Header" && e.Item.ItemType.ToString() !=
"Footer")
{
string option = ((TextBox )e.Item.FindControl("txtName")).Text;
}

Although i have written this code for Datagrid, you can use same for
gridview with little or no modification.
Thanks and Regards,
Manish Bafna.
MCP and MCTS.

:

I am trying to get the text of an item in a GridView, but am doing something
wrong. Can someone help me with the correct C# statement I need? Below is my
GridView and my attempt to get the control. Thank you.

string option =
((TextBox)dgDropDownMenus.Items[e.Item.ItemIndex].FindControl("txtName")).Text;

-----------------------DataGrid-------------------------------------------

<asp:datagrid id="dgMenus" style="Z-INDEX: 101; LEFT: 0px; POSITION:
absolute; TOP: 0px"
runat="server" DataKeyField="DropDownMenuID" CellPadding="0"
BackColor="White" BorderStyle="None" Font-Bold="True" BorderWidth="1px"
BorderColor="#999999" GridLines="Vertical" HorizontalAlign="Center"
AutoGenerateColumns="False" Width="100%">
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" HorizontalAlign="Center"
Height="10px" ForeColor="White" VerticalAlign="Middle"
BackColor="#008A8C"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center" Height="10px" Width="50px"
VerticalAlign="Middle"></EditItemStyle>
<AlternatingItemStyle HorizontalAlign="Center" Height="10px"
VerticalAlign="Middle" BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="10px" ForeColor="Black"
VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Wrap="False" CssClass="datagridheader"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="<img border="0" src="../images/edit_icon.gif">"
HeaderText="Edit" CommandName="Edit">
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="Name">
<HeaderStyle Width="25px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtName" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.DisplayName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Description">
<HeaderStyle Width="70%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container,
"DataItem.Description") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="Textbox1" runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.Description") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="Next -->"
PrevPageText="<-- Previous"
HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"
Wrap="False" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top