簡體   English   中英

在GridView中獲取數據綁定單元的值

[英]Get value of databound cell in GridView

我已經嘗試了一段時間了,似乎無法弄清楚。 我可以在gridview中很好地提取控件,但是我需要獲取GridView中數據綁定單元的值,並且似乎無法找出方法。 這是我的代碼:

網頁:

 <asp:GridView ID="ReceiverPanel" runat="server" AutoGenerateColumns="False" DataSourceID="ODSPopulatePOItemList">
    <Columns>
        <asp:BoundField DataField="PurchaseOrderID" HeaderText="PurchaseOrderID" SortExpression="PurchaseOrderID" Visible="False" />
        <asp:BoundField DataField="StockItemID" HeaderText="StockItemID" SortExpression="StockItemID" />
        <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
        <asp:BoundField DataField="QuantityOnOrder" HeaderText="QuantityOnOrder" SortExpression="QuantityOnOrder" />
        <asp:BoundField DataField="QuantityOutstanding" HeaderText="Outstanding" SortExpression="QuantityOutstanding" />
        <asp:TemplateField HeaderText="Receive">
            <ItemTemplate>
                <asp:TextBox runat="server" ID="Received" Text='<%# Eval("Received") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Return">
            <ItemTemplate>
                <asp:TextBox runat="server" ID="Returned" Text='<%# Eval("ReturnedQuantity") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Reason">
            <ItemTemplate>
                <asp:TextBox runat="server" ID="Reason" Text='<%# Eval("Reason") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

背后的代碼:

protected void ReceiveButton_Click(object sender, EventArgs e)
{

    // Gather data from gridview
    foreach (GridViewRow row in ReceiverPanel.Rows)
    {
        // Find controls in the Gridview
        //var purchaseOrderIdCtrl = row.FindControl("PurchaseOrderID") as HiddenField;
        //var stockItemCtrl = row.FindControl("")
        var receivedCtrl = row.FindControl("Received") as TextBox;
        var returnedCtrl = row.FindControl("Returned") as TextBox;
        var reasonCtrl = row.FindControl("Reason") as TextBox;
        //SELECT DATABOUND CONTROL var stockItemNo = row.SelectedRow.Cells[2].Text ;

        //int stockItemNum = int.Parse(stockItemNo);
        int received = int.Parse(receivedCtrl.Text);
        int returned = int.Parse(returnedCtrl.Text);
        string reason = reasonCtrl.Text;

        Update_StockItem(stockItemNum, received);
    }

有沒有一種簡單的方法可以從GridView中獲取值? 任何幫助將不勝感激。

這樣嘗試

您需要指定綁定字段的索引,例如PurchaseOrderID是第一個BoundField因此其索引為0

 foreach (GridViewRow row in ReceiverPanel.Rows)
    {
         string PurchaseOrderID =row.Cells[0].Text


    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM