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