3 Stimmen

Spalten mit Textboxen in Gridview mit C# hinzufügen

Ich arbeite an einem Warenkorb auf einer Website und habe meine Artikel (die dem Warenkorb hinzugefügt wurden) in einer Arrayliste. Und mit diesen Werten habe ich den Rest der Werte aus der Datenbank gelesen und erfolgreich in die Gridview eingefügt.

        if (d1.Read())
        {
            d1.Close();
            sda.SelectCommand = searchResult;
            sda.Fill(dt);
            GridView2.DataSource = dt;
            GridView2.DataBind();
        }

Wie kann ich eine zusätzliche Spalte mit dem Namen "Menge" in dieser Tabelle zusammen mit einem Textfeld hinzufügen, so dass der Benutzer einen Wert für die Menge für jedes Element in der Tabelle angezeigt eingeben kann?

Für jede Hilfe/jeden Vorschlag/jeden Link wären wir Ihnen sehr dankbar.

danke,

//edit 2

<asp:GridView ID="GridView2" runat="server" BackColor="#388AD0"
    BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black"
    GridLines="Vertical" Height="160px" Style="left: 72px;
    position: relative; top: 8px" Width="504px" AllowPaging="True" PageSize="5">
    <FooterStyle BackColor="#E0E0E0" />
    <PagerStyle BackColor="Silver" ForeColor="Black" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#388AD0" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="#388AD0" />
    <PagerSettings Mode="NextPrevious" />
</asp:GridView>

//edit 3

public void additem(string additem) 
{
    DataTable dt = new DataTable();
    string ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ewap_k.mdf;Integrated Security=True;User Instance=True";
    using (SqlConnection searchCon = new SqlConnection(ConnectionString))
    {
        using (SqlCommand searchResult = new SqlCommand("SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE ItemID IN ( " + itemIDs + ")", searchCon))
        {
            searchCon.Open();
            SqlDataReader d1 = searchResult.ExecuteReader();
            SqlDataAdapter sda = new SqlDataAdapter();

            if (d1.Read())
            {
                d1.Close();
                sda.SelectCommand = searchResult;
                sda.Fill(dt);
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }
            else { }
            searchCon.Close();
        }
    }
}

//edit 4

<asp:GridView ID="GridView1" runat="server" Style="left: 8px; position: relative;
    top: 0px">
    <Columns>
        <asp:BoundField DataField="ItemID"  Visible="false"/>
        <asp:BoundField DataField="Name" />
        <asp:BoundField DataField="RelDate" />
        <asp:TemplateField>
        <ItemTemplate>
            <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
        <asp:BoundField DataField="Price" />
        <asp:BoundField DataField="Status" />
    </Columns>
</asp:GridView>

3voto

nkirkes Punkte 2615

Sie können ein Vorlagenfeld hinzufügen und das Textfeld im ItemTemplate als solches ablegen:

<asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>

[Bearbeiten] Hier ist ein vollständigeres Raster:

<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:BoundField />
        <asp:BoundField />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Beachten Sie, dass das TemplateField überall dort angezeigt wird, wo ich es in die Liste der Spalten einfüge. Wenn das bei Ihnen immer noch nicht funktioniert, können Sie Ihr GridView-Markup posten, damit ich sehen kann, was Sie haben?

[Bearbeiten 2] Hier ist eine aktualisierte Version deines Rasters. Sie müssen nur die BoundFields so einrichten, dass sie an den gewünschten Wert in Ihrem Datensatz gebunden sind.

<asp:GridView ID="GridView2" runat="server" BackColor="#388AD0" BorderColor="Black"
    BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical"
    Height="160px" Style="left: 72px; position: relative; top: 8px" Width="504px"
    AllowPaging="True" PageSize="5">
    <Columns>
        <asp:BoundField />
        <asp:BoundField />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <FooterStyle BackColor="#E0E0E0" />
    <PagerStyle BackColor="Silver" ForeColor="Black" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#388AD0" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="#388AD0" />
    <PagerSettings Mode="NextPrevious" />
</asp:GridView>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X