GridView OnSelectedIndexChanged вызывает функцию JavaScript
Можно ли вызвать функцию JS для события SelectedIndexChanged объекта GridView? Я сослался на эти 2 ТАКИХ поста - пост 1 и пост 2, которые касаются этого, но они не помогают.
Я старался
OnSelectedIndexChanged="selectedindexchanged()"
однако взамен я получил -
'ASP.default_aspx' does not contain a definition for 'selectedindexchanged' and no
extension method 'selectedindexchanged' accepting a first argument of type
'ASP.default_aspx' could be found (are you missing a using directive or an
assembly reference?)
Может ли кто-нибудь подтвердить, можно ли это сделать и может ли это быть правильным способом?
2 ответа
OnSelectedIndexChanged
это событие сервера, а не событие javascript.
Управление сервером GridView
не позволяет подключать готовые методы javascript.
Вам необходимо расширить его и создать такие методы или использовать другой Grid Control, доступный в качестве стороннего разработчика.
То, что вы можете сделать, чтобы в коде не было ничего сложного, это, например, с помощью jQuery подключить все строки и вызвать событие, когда что-то в этой строке было щелкнуто, удерживая возврат (представление Форма обратно на сервер).
Для этого вам нужно посмотреть, что является выходным HTML и начать с него.
Это была одна из многих функций, которые я перешел в MVC вместо того, чтобы продолжать использовать WebForms, в MVC вы имеете полный контроль над тем, что происходит на вашей странице, и вы можете делать все самостоятельно, даже не задумываясь о таких вещах.
Используйте Row Data Bound Event, чтобы связать вашу функцию Java-скрипта,
protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
e.Row.Attributes.Add("onclick", "selectedindexchanged()");
}
}
Теперь, когда вы нажимаете на строку вида сетки, selectedindexchanged
будет называться.