2011-03-10 50 views
1

我有一個GridView,導出到.csv很好,下面的代碼。問題是我有一個TextBox的TemplateColumn,它根本不寫入.CSV!Datagrid模板列提交到.CSV

任何人都可以幫助我嗎?它讓我瘋狂!

這裏的任何幫助將是偉大的!

<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(); 

回答

0

您需要獲取文本框控件並獲取其值。

喜歡的東西...

  TextBox txt = GridView1.Rows[i].Cells[j].FindControl("textboxid"); 
1

這工作:

  //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++) 
      { 

       GridViewRow row = GridView1.Rows[i]; 

       TextBox Qty = (TextBox)row.FindControl("TextBox2"); 
       String Quant = Qty.Text; 


       if (strRowVal == "") 
       { 
        strRowVal = DateTime.Now + "," + username[1].Remove(3)+ "," + Layout.Text + "," + Quant + "," + GridView1.Rows[i].Cells[j].Text; 
       } 
       else 
       { 
        strRowVal = strRowVal + "," + GridView1.Rows[i].Cells[j].Text; 
       } 
      } 
      sw.WriteLine(strRowVal); 
     } 
     sw.Close();