使用C在gridview中添加带有文本框的列#

使用C在gridview中添加带有文本框的列#,gridview,Gridview,我正在一个网站的购物车上工作,我在arraylist中有我的项目(已经添加到购物车中)。使用这些值,我已经从db中读取了其余的值,并成功地在gridview中填充了这些值 if (d1.Read()) { d1.Close(); sda.SelectCommand = searchResult; sda.Fill(dt); GridView2.DataSource =

我正在一个网站的购物车上工作,我在arraylist中有我的项目(已经添加到购物车中)。使用这些值,我已经从db中读取了其余的值,并成功地在gridview中填充了这些值

        if (d1.Read())
        {
            d1.Close();
            sda.SelectCommand = searchResult;
            sda.Fill(dt);
            GridView2.DataSource = dt;
            GridView2.DataBind();
        }
如何在此gridview中添加一个名为“Quantity”的附加列以及一个文本框,以便用户可以为gridview中显示的每个项目输入质量值

如有任何帮助/建议/链接,将不胜感激

谢谢

//编辑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>
//编辑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>

您可以在ItemTemplate中添加模板字段并删除文本框,如下所示:

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

[编辑]这里有一个更完整的网格:

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

请注意,TemplateField显示在我决定将其放入列列表的任何位置。如果这仍然不适用于您,您可以发布您的GridView标记,以便我可以看到您得到了什么

[编辑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">
    <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>


谢谢,我试过了,效果不错。此新列显示为第1列。如何将它放在我想要的列之间?通过添加BoundFields来定义顺序,并将TemplateField放在您喜欢的位置。@mannish:我尝试了您的代码,这只会在带有textbox的列前面创建两列。记住,我希望gridview显示的值取自db@rAyt:我猜您提到的是mannish之前提到的相同内容?您仍然可以从数据库中获取值,但是您必须专门绑定数据集中的值,而不是允许它自动绑定列。如果要在代码隐藏中自动绑定数据集,则可以在填充网格后动态添加模板列,但我认为这是更困难/错误的途径。最好提前指定所需的列和值,这样可以更好地控制要显示的内容。是的,在使用FooterStyle之前,需要为要显示的字段以及TemplateField添加特定的BoundField。查看我的答案以获得更新的编辑。
<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>