网格视图行上的 foreach 始终运行 1 次

本文关键字:运行 foreach 视图 网格 | 更新日期: 2023-09-27 18:36:40

我有一个GridviewObject data source,并使用Object data source进行绑定Gridview,如下所示:

<asp:GridView ID="grdProducts" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
        GridLines="None" AllowPaging="true" PageSize="10" DataSourceID="ObjDataSource">
        <Columns>
        </Columns>
    </asp:GridView>
    <asp:ObjectDataSource ID="ObjDataSource" runat="server"
        SelectCountMethod="Count" SelectMethod="Get"
        TypeName="App.Data.Products" EnablePaging="true"
        StartRowIndexParameterName="skip"
        MaximumRowsParameterName="take">
        <SelectParameters>
            <asp:QueryStringParameter QueryStringField="id" Name="ID" ConvertEmptyStringToNull="true" />
        </SelectParameters>
    </asp:ObjectDataSource>

我有一个按钮,并在OnClick事件上编写了以下代码:

foreach (GridViewRow row in grdProducts.Rows)
    {
        Response.Write("A<br />");
    }

当我运行时,我看到Gridview超过 1 行,但是当我单击按钮时,A只写了 1 次!

同样当我写grdProducts.Rows.Count时,结果我得到了 1。

错误的部分是什么?

谢谢!

网格视图行上的 foreach 始终运行 1 次

将代码更改为如下所示的内容:

string textToPrint = string.empty;
foreach (GridViewRow row in grdProducts.Rows)
    {
        textToPrint += "A<br />";
    }
Response.Write(textToPrint);