Nicht Werte aus Textboxen in templateField innerhalb des gridview

Leid, der code weiter oben. Könnte sich jemand bitte helfen?
Ich habe ein gridview GridView1 welche aufgefüllt PageLoad() durch den Import aus Excel-Tabelle hat drei Spalten:

  1. Datum
  2. Kunden
  3. PayingBookNoOrDD

Dem Blatt hat fünf Zeilen. Benutzer Bearbeiten können die Daten in Textboxen auf der Seite (markup unten). Nach dem Bearbeiten, klickt der Benutzer auf die submit-Schaltfläche, die ich brauche, um diese neuen Werte aus allen Textfelder und Aktualisierung der Excel-Tabelle aus, wo die GridView bevölkert war.

Erstellte ich drei string-arrays: dateArray, custArray, und payingInBookArray zu speichern, diese neuen Werte. Aber wenn ich die Anwendung aller drei arrays leer sind.

Markup:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="Date,Customers,PayingInBookNoOrDD" >
    <Columns>
    <asp:TemplateField>
        <HeaderTemplate>Date</HeaderTemplate>
        <ItemTemplate>
            <asp:TextBox runat="server" ID="txtDate" Text='<%# Bind("Date") %>'></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField>
        <HeaderTemplate>Customers</HeaderTemplate>
        <ItemTemplate>
            <asp:TextBox runat="server" ID="txtCustomers" Text='<%# Bind("Customers") %>'></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField>
        <HeaderTemplate>PayingInBookNoOrDD</HeaderTemplate>
        <ItemTemplate>
            <asp:TextBox runat="server" ID="txtPayingInBookNoOrDD" Text='<%# Bind("PayingInBookNoOrDD") %>'></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:GridView>

<asp:Button ID="txtSubmit" runat="server" Text="Submit" onclick="txtSubmit_Click" />

Code-behind:

protected void Page_Load(object sender, EventArgs e)
{
    string selectQuery = "SELECT * FROM [Month1$B2:D5]";
    OleDbConnection conn = new OleDbConnection(connString);

    conn.Open();

    OleDbDataAdapter da = new OleDbDataAdapter(selectQuery, conn);
    DataSet ds = new DataSet();
    da.Fill(ds);

    GridView1.DataSource = ds;
    GridView1.DataBind();

    conn.Close();
    da.Dispose();
    conn.Dispose();
}

protected void txtSubmit_Click(object sender, EventArgs e)
{
    IList<string> DateArray = new List<string>();
    IList<string> custArray = new List<string>();
    IList<string> payInBookArray = new List<string>();

    foreach (GridViewRow gr in GridView1.Rows)
    {
        TextBox lblDate = (TextBox)gr.Cells[0].FindControl("txtDate");
        DateArray.Add(lblDate.Text);

        TextBox lblCustomers = (TextBox)gr.Cells[1].FindControl("txtCustomers");
        custArray.Add(lblCustomers.Text);

        TextBox lblPayInBookNo = (TextBox)gr.Cells[2].FindControl("txtPayingInBookNoOrDD");
        payInBookArray.Add(lblPayInBookNo.Text);
    }

    ExportToExcel(DateArray.ToArray(), custArray.ToArray(), payInBookArray.ToArray()); 

}

Bitte lassen Sie mich wissen, wenn jemand eine Lösung hat.

Dank.

  • Bitte bereinigen Sie Ihren code-Beispiele...viel zu viel zu Bearbeiten
  • Hi CAbbott, Sorry ich bin neu auf dieser Seite. Ich versuchte, Bearbeiten Sie die Frage, aber es war noch mehr messier. Bitte gebt mir ein paar Minuten und ich werde es beheben.
  • Dont call buttons txtSubmit oder nichts als Vorwort zu einer txt wenn seine wirklich ein button btn, es kann sehr irreführend sein. Sollten Sie auch wickeln Sie Ihren connection-Objekt mit der using - Anweisung, so dass Sie nicht haben, um Anruf .dispose() ausdrücklich.
InformationsquelleAutor Amol | 2011-10-06
Schreibe einen Kommentar