Входные данные пусты при возврате, несмотря на наличие значений

StackOverflow https://stackoverflow.com/questions/635980

  •  10-07-2019
  •  | 
  •  

Вопрос

Я использую telerik RadGrid с формой редактирования UserControl.Когда срабатывает событие InsertCommand, я получаю пользовательский элемент управления и нахожу в нем элементы управления редактированием, но все текстовые свойства являются строковыми.Пусто.Я подозреваю, что это как-то связано с ViewState, но я не знаю, с чего начать поиск.

protected void jobGrid_InsertCommand(object source, GridCommandEventArgs e)
{
    var editControl = e.Item.FindControl(GridEditFormItem.EditFormUserControlID) as JobEditControl;
    SqlJobProvider.InsertJob(GetFieldValues(editControl));
}

private Dictionary<string, object> GetFieldValues(UserControl editControl)
{
    string tb = (editControl.FindControl("aspText") as TextBox).Text;
Это было полезно?

Решение

Я считаю, что ваши элементы управления пусты, потому что вы привязываете сетку перед вставленным событием. Чтобы избежать такого поведения, я предлагаю вам заполнить RadGrid, используя событие NeedDataSource. Он запускается всякий раз, когда сетка нуждается в повторной привязке.

Другие советы

Сначала проверьте страницу Page_Load и убедитесь, что вы не сбрасываете все данные там при каждом попадании на страницу. Если у вас нет! IsPostBack, вы, вероятно, есть. Это самая распространенная причина не получать значения при публикации.

Использование:Частный подраздел RadGrid1_InsertCommand(обычно использует источник как объект, обычно использует его как Telerik.Web.UI.GridCommandEventArgs) Обрабатывает RadGrid1.InsertCommand Затемнить вставленный элемент как GridEditableItem = e.Item.OwnerTableView.GetInsertItem()

    Dim _userControl As UserControl = CType(insertedItem.FindControl(GridEditFormItem.EditFormUserControlID), UserControl)

... http://www.telerik.com/help/aspnet/grid/grdinsertingvaluesusercontrolformtemplate.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top