2016-03-15 141 views
-1

我是ASP.NET新手。我有一個情況如下圖所示:在Gridview中計算總價格

<asp:GridView AutoGenerateColumns="false" ID="GridView1" runat="server"> 
    <Columns> 
     <asp:BoundField DataField="BookID" HeaderText="Book ID" /> 
     <asp:BoundField DataField="BookName" HeaderText="Book Name" /> 
     <asp:BoundField DataField="Author" HeaderText="Author" /> 
     <asp:BoundField DataField="Price" HeaderText="Price" /> 
     <asp:TemplateField HeaderText="Testing Field"> 
      <ItemTemplate> 
       <asp:HiddenField ID="HiddenPrice" Value='<%#Eval("Price") %>' runat="server" /> 
       <asp:DropDownList AutoPostBack="true" OnSelectedIndexChanged="ddlQuantity_SelectedIndexChanged" ID="ddlQuantity" runat="server"> 
        <asp:ListItem>1</asp:ListItem> 
        <asp:ListItem>2</asp:ListItem> 
        <asp:ListItem>3</asp:ListItem> 
        <asp:ListItem>4</asp:ListItem> 
        <asp:ListItem>5</asp:ListItem> 
        <asp:ListItem>6</asp:ListItem> 
        <asp:ListItem>7</asp:ListItem> 
        <asp:ListItem>8</asp:ListItem> 
        <asp:ListItem>9</asp:ListItem> 
       </asp:DropDownList> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="Total" Enabled="false" Text="asdfsdf" runat="server"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

正如你可以看到我有一個gridview裏面一個下拉列表。每次我在列表中選擇一個不同的號碼時,它都會計算價格,並將其添加到文本框(價格*號碼)Total

所以我的問題是如何計算所有Total文本框的總價格並將結果輸出到girdview之外的標籤?

這裏是隱藏文件我的代碼:

private static OBMDbContext context = new OBMDbContext(); 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     GridView1.DataSource = context.Books.ToList(); 
     GridView1.DataBind(); 
    } 
} 

protected void ddlQuantity_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddl = (DropDownList)sender; 
    int quantity = Convert.ToInt16(ddl.SelectedItem.Value); 
    TextBox tb = (TextBox)ddl.FindControl("Total"); 
    HiddenField hf = (HiddenField)ddl.FindControl("HiddenPrice"); 
    tb.Text = (quantity * Convert.ToInt16(hf.Value)).ToString(); 
} 

感謝提前:)

+0

請參考微軟教程:HTTPS ://msdn.microsoft.com/en-us/library/bb310552.aspx –

+0

哇,非常感謝@AlexBell,你是最棒的:) –

+0

不客氣!祝你的項目好運。最好的問候, –

回答

0

是文本框是在GridView外,你不會是具有深遠它的一個問題。

如果你不能,你可以嘗試通過它達到:

(DropDownList)sender.Parent 

@Alex貝爾s的鏈路也是一個更好的解決方案:

https://msdn.microsoft.com/en-us/library/bb310552.aspx