DataGrid Template Column

Hi,

I have a DataGrid with a TemplateColumn which contains a textbox. I want to be able to bring back the value of the textbox to a string. Can anyone help me do this?

Thanks
Gaz124Asked:
Who is Participating?
 
Bob LearnedConnect With a Mentor Commented:
DataGrid:  1.1
GridView:  >=2.0

You need to call FindControl on the GridViewRow, as in this example:

GridViewRow row = this.GridView1.Rows[0];
TextBox textBox = (TextBox)row.FindControl("TextBox1");

Open in new window

0
 
Gaz124Author Commented:

I have tried the following code with little success!
protected void Button1_Click(object sender, EventArgs e)
        {
            //Get Username
        string[] username = Request.ServerVariables["LOGON_USER"].ToString().Split('\\');
            globalfunctions getAttribute = new globalfunctions();

            string storeEmail = getAttribute.getADattribute(username[1], "mail");

            DataGridItem item = (sender as Button).NamingContainer as DataGridItem;
            string Name = ((TextBox)(item["QTY"].FindControl("TextBox2"))).Text;

            TextBox Qty = (TextBox)((Button)sender).NamingContainer.FindControl("TextBox2");

Open in new window

0
 
Bob LearnedCommented:
It looks like you are trying to use FindControl with the item, but I don't believe that you have the right reference, but it is difficult to be sure, without seeing the HTML declaration for the DataGrid.
0
 
Gaz124Author Commented:
Ok, heres the code asp and c#. I can get every other part of the datagrid to my .csv but not the template column, Frustrating!!


<asp:GridView ID="GridView1" runat="server" DataSourceID="as400" 
        AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" 
        GridLines="None">
        <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
        <Columns>
         <asp:BoundField DataField="IMSKU" HeaderText="SKU"  />
         <asp:BoundField DataField="IMDESC" HeaderText="Description"  />
         <asp:BoundField DataField="JFFXQT" HeaderText="Required" 
                ItemStyle-HorizontalAlign="Center" >
<ItemStyle HorizontalAlign="Center"></ItemStyle>
            </asp:BoundField>
            <asp:TemplateField HeaderText="Qty"> 
                <ItemTemplate>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
           
        </Columns>
        <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
        <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="White" />
    </asp:GridView>


protected void Button1_Click(object sender, EventArgs e)
        {

            //Get Username
        string[] username = Request.ServerVariables["LOGON_USER"].ToString().Split('\\');
            globalfunctions getAttribute = new globalfunctions();

            string storeEmail = getAttribute.getADattribute(username[1], "mail");

            //append to csv file
            StreamWriter sw = File.AppendText("e:\\results\\decdiylayout.csv");

            //seperate datagrid to comma seperated values
             for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            string strRowVal = "";
            for (int j = 0; j < GridView1.Rows[i].Cells.Count; j++)
            {
                if (strRowVal == "")
                {
                    strRowVal = DateTime.Now + "," + username[1].Remove(3)+ "," + Layout.Text + "," + GridView1.Rows[i].Cells[j].Text;
                }
                else
                {
                    strRowVal =  strRowVal + "," + GridView1.Rows[i].Cells[j].Text;
                }
            }
            sw.WriteLine(strRowVal);
        }
        sw.Close();

Open in new window

0
 
Gaz124Author Commented:
WOW TheLearnedOne Thats Great!!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.