向GridView添加更多列

时间:2012-02-28 13:38:38

标签: asp.net gridview

我有一个GridView,它绑定到数据库表。这个GridView显示了一些书籍(价格,作者信息等)。

我想在每本书末尾的GridView添加一列“添加到购物车”。我添加了一列文字“添加到购物车”。但是,在调试时,它显示一个错误,因为“添加到购物车在db中不存在。”

因此,请告诉我如何将此列附加到GridView

标记

<asp:GridView ID="GridView1" runat="server" BorderStyle="Double" 
    BorderWidth="3px" CellPadding="4" GridLines="Horizontal" Height="260px" 
    Width="661px">

    <FooterStyle BackColor="White" ForeColor="#333333" />
    <HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="White" ForeColor="#333333" />
    <SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
    <SortedAscendingCellStyle BackColor="#F7F7F7" />
    <SortedAscendingHeaderStyle BackColor="#487575" />
    <SortedDescendingCellStyle BackColor="#E5E5E5" />
    <SortedDescendingHeaderStyle BackColor="#275353" />
    <Columns>
        <asp:ButtonField Text="Add To Cart">
        <FooterStyle HorizontalAlign="Right" />
        <HeaderStyle HorizontalAlign="Right" />
        <ItemStyle HorizontalAlign="Left" />
        </asp:ButtonField>
    </Columns>
</asp:GridView>

代码

public partial class WebForm9 : System.Web.UI.Page<p>
{
    buybl obj = new buybl();
    protected void Page_Load(object sender, EventArgs e)
    {
        obj.dept = "IT";
        GridView1.DataSource = obj.select();
        GridView1.DataBind();
    }
}

3 个答案:

答案 0 :(得分:1)

没有你的标记,很难说。但是,听起来您可能已经在绑定到数据库的列之后对“添加到购物车”列进行了建模。您可能将您的数据绑定列设置为BoundFields,如下所示:

<Columns>
    <asp:BoundField DataField="Title" HeaderText="Book Title" />
    <asp:BoundField DataField="Author" HeaderText="Book Author" />
    <asp:BoundField DataField="Price" HeaderText="Book Price" />
</Columns>

您的“添加到购物车”列将不会数据绑定。如果您只想添加包含静态按钮的列,则可以向CommandField添加GridView,如下所示:

<Columns>
    <asp:BoundField DataField="Title" HeaderText="Book Title" />
    <asp:BoundField DataField="Author" HeaderText="Book Author" />
    <asp:BoundField DataField="Price" HeaderText="Book Price" />
    <asp:CommandField SelectText="Add To Cart" ShowSelectButton="True" />
</Columns>

或者您只需将AutoGenerateSelectButton="True"添加到GridView标记即可。然后,您可以在单击“选择”按钮时触发的RowCommandSelectedIndexChanged事件中处理向购物车添加商品

答案 1 :(得分:0)

你可以在gridview

中添加这样的列
<asp:TemplateField  >
   <HeaderTemplate  >
   <asp:Button ID="ButtonName" runat="server"  Text="Add to Cart" >   </asp:Button> 
</HeaderTemplate>
</asp:TemplateField>

答案 2 :(得分:0)

使用TemplateField列类型 - 无限制自定义:
http://msdn.microsoft.com/en-us/library/bb288032.aspx

<asp:TemplateField HeaderText="FirstName" SortExpression="FirstName">

    <EditItemTemplate>

        <asp:TextBox ID="TextBox1" runat="server" Text='<% #Bind("FirstName") %>'></asp:TextBox>

    </EditItemTemplate>

    <ItemTemplate>

        <asp:Label ID="Label1" runat="server" Text='<% #Bind("FirstName") %>'></asp:Label>

    </ItemTemplate>

</asp:TemplateField>