所以我有一个遍历GridView的函数,该函数使用带有分页功能的JQuery DataTable。它为每个页面显示十行,因此有必要编辑所需的所有文本框,然后单击名为“保存”的按钮,该按钮调用前面提到的功能。问题在于,只有单击“保存”按钮时屏幕上显示的页面才发送文本框值,而不是所有的gridview texbox。例如,如果我编辑“ gridview页面1”,“ gridview页面2”和“ gridview页面3”字段,并在显示“ gridview页面3”的同时单击“保存”按钮,则“ gridview页面1”和“ gridview页面” 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
答案 0 :(得分:0)
使用分页网格时,仅当您更改页面时才呈现和加载数据(如果是服务器端分页)。也许您可以在值更改事件中保存数据,所以当您切换到下一页并再次返回时,您的数据已更新。