Я работаю с сеткой, привязанной к ObjectDataSource
.В этой сетке есть один столбец с DropDownList
(AutoPostBack
равен true
) и Rating
.Предполагается, что эти элементы управления позволяют пользователю немедленно изменять данные.
В отличие от RowCommand
(edit: in 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");
}
}