Я считаю, что проблема в том, что событие находится внутри GridView, и вы не можете получить к ним доступ так же легко, как вы можете с помощью чего-то вроде кнопки. Чтобы зарегистрировать GridView для создания асинхронных событий, необходимо присоединить его к ScriptManager.
Для этого используется метод RegisterAsyncpostBackControl
.
Вот общее представление о том, как это сделать.
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server">
<%-- your fields, etc --%>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
В вашем коде позади вы делаете
protected void Page_Load()
{
ScriptManager1.RegisterAsyncPostBackControl(GridView1);
}
Прошло много времени с тех пор, как я это сделал, но я верю, что это позволит GridView функционировать так, как вы ожидаете, за исключением того, что вам не нужен дополнительный DataBind (), в который я не верю.
Вы также можете установить для UpdatePanel значение Conditional и запустить UpdatePanel1.Update () поверх этого, как предложил Jeison.
Вы можете найти некоторые дополнительные детали на http://msdn.microsoft.com/en-us/library/bb386452.aspx
Если у вас все еще есть проблемы, сообщите нам, что случилось.