Как я могу обновить мой FormView после редактирования? - PullRequest
2 голосов
/ 07 декабря 2011

Я использую FormView для выбора компаний из базы данных.Этот FormView связан с ObjectDataSource, который связан с DropDownList.Когда пользователь выбирает компанию из DropDownList, FormView заполняется информацией, относящейся к компании (AutoPostBack включена на DropDownList для обеспечения динамического изменения записи).My FormView поддерживает функции вставки, обновления и удаления, из которых работают все три.

Моя проблема заключается в следующем: после того, как я отредактировал запись в FormView, запись успешно изменяется, однако онаполностью удален с экрана.Только после того, как я выберу новую компанию из моего DropDownList, запись будет повторно отображаться в FormView.

У кого-нибудь есть идеи относительно того, в чем здесь может быть проблема?

Ответы [ 2 ]

4 голосов
/ 07 декабря 2011

Вам нужно снова привязать данные.

void FormView_ItemInserted(Object sender, FormViewInsertedEventArgs e)
{
  Gridview.Databind();
}
1 голос
/ 07 декабря 2011

Вам необходимо активировать дочерний элемент управления, когда родительский элемент управления был изменен.

Я обнаружил, что наиболее надежный способ сделать это - событие DataBound родительского элемента управления. После успешного редактирования вызывается это событие, поскольку элемент управления должен повторно привязаться к отредактированным данным.

Вот фрагмент моего реального кода, где я делаю нечто подобное. В нем у меня есть элемент управления QuestionGroupResutls, у которого есть дочерние записи в элементе управления с именем QuestionResults.

void QuestionGroupResults_DataBound(object sender, EventArgs e)
{
    QuestionGroupsEditingDetailsView1.DataBind();
    QuestionResults.DataBind();

}

У меня это есть в Page_Load, но вы можете декларативно указать это в asmx (у меня просто нет примера кода).

 QuestionGroupResults.DataBound += new EventHandler(QuestionGroupResults_DataBound);

Я не знаю названия ваших элементов управления, но вы должны быть в состоянии сделать то же самое с вашим.

...