Foreach не получает все значения из gridview из-за пагинации данных - PullRequest
0 голосов
/ 05 марта 2019

Итак, у меня есть функция, которая проходит через GridView, которая использует JQuery DataTable с разбиением на страницы.Он показывает десять строк для каждой страницы, поэтому необходимо отредактировать все нужные вам текстовые поля и нажать кнопку «Сохранить», которая вызывает функцию, упомянутую ранее.Проблема в том, что только страница, отображаемая на экране в момент нажатия кнопки «Сохранить», отправляет значения текстового поля, а не все текстовые поля gridview.Например, если я отредактирую поля «страница просмотра сетки», «страница просмотра сетки 2» и «страница просмотра сетки 3» и нажму на кнопку «Сохранить», пока отображается «страница просмотра сетки 3», то появится страница просмотра сетки 1 и страница просмотра сетки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(",", ".");

            }
        }
}

Вот как выглядит мой GridView с использованием подключаемого модуля JQuery с данными

1 Ответ

0 голосов
/ 05 марта 2019

При использовании разбитой на страницы сетки данные отображаются и загружаются (если это разбивка на страницы на стороне сервера) только при изменении страницы. Может быть, вы можете сохранить данные об изменении значения события, чтобы при переходе на следующую страницу и обратно вы обновляли данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...