Solved

DataGrid Template Column

Posted on 2011-03-09
5
492 Views
Last Modified: 2013-12-17
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
0
Comment
Question by:Gaz124
  • 3
  • 2
5 Comments
 

Author Comment

by:Gaz124
ID: 35082002

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
 
LVL 96

Expert Comment

by:Bob Learned
ID: 35090455
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
 

Author Comment

by:Gaz124
ID: 35093274
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
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 35099839
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
 

Author Comment

by:Gaz124
ID: 35107937
WOW TheLearnedOne Thats Great!!
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question