Вы не можете получить доступ к элементу управления EditItemTemplate напрямую.Вы можете получить к ним доступ в событии HtmlRowCreated как:
if (e.RowType != GridViewRowType.InlineEdit) return;
ASPxTextBox txtBox = ASPxGridView1.FindEditRowCellTemplateControl(ASPxGridView1.Columns["Name"]
as GridViewDataColumn, "ASPxTextBox1") as ASPxTextBox;
Проверьте документацию о доступе к элементам управления, содержащимся в шаблонах
Можно привести свойство ASPxLabel.NamingContainerв GridViewEditItemTemplateContainer и получить значение столбца через свойство GridViewEditItemTemplateContainer.Text.
Но мне нравится technique of using the Init/Load event handler.
Когда сетка переключается в режим редактирования, возникает событие ASPxLabel.Load.Прочтите эту статью Общая методика использования обработчика события Init / Load для помощи в реализации.
[ASPx]
<dxe:ASPxTextBox ID="txtName" runat="server" Width="170px" OnInit="txtName_Init">
</dxe:ASPxTextBox>
[C #]
ASPxTextBox txtName;
protected void txtName_Init(object sender, EventArgs e)
{
txtName = (ASPxTextBox)sender;
GridViewEditFormTemplateContainer container = txtName.NamingContainer as GridViewEditFormTemplateContainer;
// You can remove the if statement, and try to insert a new record. You'll catch an exception, because the DataBinder returns null reference
if (!container.Grid.IsNewRowEditing)
txtName.Text = DataBinder.Eval(container.DataItem, "CategoryName").ToString();
}
Событие обновления:
protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
{
e.NewValues["CategoryName"] = txtName.Text;
}
Уже есть вопрос - ASPxGridView - Как найти элемент управления внутри EditItemTemplate на DevExpress Fourm.