У меня есть ASPxGridView
с колонкой, связывающейся ASPxTextBox
<dx:GridViewDataTextColumn Caption="Capacity" FieldName="Capacity" VisibleIndex="4" >
<DataItemTemplate>
<dxe:ASPxTextBox ID="txtCapacity" runat="server" Text='<%# Eval("Capacity") %>'>
</dxe:ASPxTextBox>
</DataItemTemplate>
</dx:GridViewDataTextColumn>
Я добавил кнопку для сохранения емкости.
Я использую GetRowValues(index, field_name)
для доступа к другим полям и FindRowCellTemplateControl(index, column, id)
, чтобы иметь возможность получить значение txtCapacity
. Но проблема в том, что при включении подкачки я не могу получить доступ к текстовым полям на других страницах.
Есть идеи по этому поводу? Спасибо
РЕДАКТИРОВАТЬ v.1
Вот мой код, к которому я обращаюсь FindRowCellTemplateControl()
protected void btnSave_Click(object sender, EventArgs e)
{
List<Capacity> capacityList = new List<Capacity>();
for (int i = 0; gvCapacity.VisibleRowCount > i; i++)
{
Capacity c = new Capacity();
c.Id = (int)gvCapacity.GetRowValues(i, "Id");
ASPxTextBox txtCapacity = (ASPxTextBox)gvCapacity.FindRowCellTemplateControl(i, (GridViewDataColumn)gvCapacity.Columns["Capacity"], "txtCapacity");
c.Value = Convert.ToInt32(txtCapacity.Text);
capacityList.Add(c);
}
//Save Capacity
//...
}