2012-02-28 78 views
0

我有一個GridView,它綁定到數據庫表。這GridView顯示了一些書籍(價格,作者信息等)。向GridView添加更多列

我想在每本書的末尾添加一列「加入購物車」到此GridView。我添加了一列文字「加入購物車」。但是,在調試時,它顯示錯誤爲「添加到購物車不存在於分貝。」

那麼請告訴我如何在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(); 
    } 
} 
+0

燦你顯示你的'GridView'的標記? – jadarnel27 2012-02-28 13:44:41

回答

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> 

「加入購物車」列不會進行數據綁定。如果你只是想補充一點,有一個靜態的按鈕欄,你可以添加一個CommandFieldGridView,像這樣:

<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事件的增加,當您單擊選擇按鈕

+0

...但現在添加到購物車的列是在開始......這是在db.Can之前,我可以放在gridview的末尾。 2012-02-28 15:10:14

+0

pls..i已經發布的代碼.... – 2012-02-28 15:37:27

+0

@ RajuSNair嗯。當你使用自動生成的列時,我沒有看到改變列順序的本地方式。在數據綁定之後,你可能會在後面的代碼中添加該列(我將很快添加一些代碼)。 – jadarnel27 2012-02-28 16:29:46

0

你可以在GridView控件

<asp:TemplateField > 
    <HeaderTemplate > 
    <asp:Button ID="ButtonName" runat="server" Text="Add to Cart" > </asp:Button> 
</HeaderTemplate> 
</asp:TemplateField> 
+0

這將在列標題中放置一個按鈕... – pseudocoder 2012-02-28 14:37:23

+0

你,你是對的。您也可以在模板字段中使用 2012-02-29 05:01:45

0

使用模板列列類型 - 無限定製:
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>