Я работаю с сеткой, привязанной к ObjectDataSource
. В этой сетке есть один столбец с DropDownList
(AutoPostBack
true
) и Rating
. Предполагается, что эти элементы управления позволяют пользователю немедленно изменять данные.
В отличие от RowCommand
(изменить: в ButtonField
), обработчики элементов управления (SelectedIndexChanged
и RatingChanged
соответственно) срабатывают после привязки данных. Таким образом, у меня либо не будет актуальных данных, либо мне придется снова выполнять привязку, вызывая DataBind
. Ни то, ни другое не так уж и круто. Элементы управления не поддерживают строковые команды.
Как лучше всего с этим справиться? Я неправильно понимаю некоторые концепции или обрабатываю неправильные события?
Вот код:
public partial class _Default : System.Web.UI.Page
{
protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
e.ObjectInstance = new MyDataSource();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
// before selecting with ButtonField
// after selecting with TemplateField + Control Event
Debug.WriteLine("Command Handler");
}
protected void Unnamed2_Click(object sender, EventArgs e)
{
// Button event handler, after selecting
Debug.WriteLine("Button Click Handler");
}
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
// Selecting invoked by ASP.NET data binding
Debug.WriteLine("Selecting");
}
}
ObjectDataSource1_Selecting
применяется передUnnamed2_Click
, который является обработчиком событий моей кнопки. - person Matthias Meid   schedule 13.12.2011