由于数据分页,Foreach没有从gridview获取所有值

问题描述 投票:0回答:1

所以我有一个循环遍历GridView的函数,它使用带有分页的JQuery DataTable。它为每个页面显示十行,因此需要编辑所需的所有文本框,然后单击名为“保存”的按钮,该按钮调用前面提到的功能。问题是,只有在单击“保存”按钮时屏幕上显示的页面才会发送文本框值而不是所有gridview texbox。例如,如果我编辑“gridview page 1”,“gridview page 2”和“gridview page 3”字段并单击“Save”按钮,同时显示“gridview page 3”,则“gridview page 1”和“gridview page” 2“文本框值未保存。如果我错误地解释自己,请告诉我。

ASPX内联代码

<asp:GridView ID="grvServicio" runat="server" AutoGenerateColumns="false" class="display" >
    <Columns>
        <asp:BoundField DataField="intIdServicio" HeaderText="ID" />
        <asp:BoundField DataField="vchServicio" HeaderText="Servicio" />           
        <asp:TemplateField HeaderText="Cantidad">      
            <ItemTemplate>                 
                <asp:TextBox ID="txtCantidad" runat="server" ClientIDMode="Static" Text='<%# Bind("intCantidad")%>'></asp:TextBox>              
            </ItemTemplate>         
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Precio">      
            <ItemTemplate>                 
                <asp:TextBox ID="txtPrecio" runat="server" ClientIDMode="Static" Text='<%# Bind("decPrecio")%>'></asp:TextBox>              
            </ItemTemplate>         
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Estatus">
            <ItemTemplate>  
                <asp:CheckBox ID="chkServEstatus" Checked='<%# Convert.ToBoolean(Eval("intEstatus"))%>' enabled="true" runat="server" CssClass="ChkBoxClass"/>                  
            </ItemTemplate> 
        </asp:TemplateField> 
    </Columns>
</asp:GridView>

ASPX背后的代码(我删除了代码保存过程,但如果有必要,请告诉我)

protected void btnGuardarServicio_Click(object sender, EventArgs e)
{
    foreach (GridViewRow row in grvServicio.Rows)
        {
            for (int i = 0; i < grvServicio.Columns.Count; i++)
            {                   
                string idEvento = row.Cells[0].Text;
                TextBox cant = (TextBox)row.Cells[2].FindControl("txtCantidad");
                TextBox prec = (TextBox)row.Cells[3].FindControl("txtPrecio");
                prec.Text = prec.Text.Replace(",", ".");

            }
        }
}

Here is how my GridView looks like using datatable JQuery plug-in

c# asp.net gridview foreach datatable
1个回答
0
投票

使用分页网格时,只有在更改页面时才会呈现和加载数据(如果它是服务器端分页)。也许您可以将数据保存在值更改事件中,因此当您切换到下一页并再次返回时,您可以更新数据。

© www.soinside.com 2019 - 2024. All rights reserved.