Кнопка редактирования нажимается два раза, чтобы работать в ASP.NET gridview
Когда я нажимаю кнопку редактирования два раза, она запускает событие, а также текстовое поле Поля редактирования не фокусирует его автоматически, выходя из фокуса.
На самом деле этот gridview был привязан к sqldatasource, а не к методу. Не только кнопки редактирования обновления и отмены, а также кнопки. Где я делаю что-то не так, может ли кто-нибудь подсказать мне. Здесь я использовал таймер для загрузки данных без обновления страницы
Что я уже пробовал:
<asp:UpdatePanel ID="up" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="tGVLoadData" EventName="Tick" /> </Triggers> <ContentTemplate> <%-- Timer --%> <asp:Timer ID="tGVLoadData" runat="server" Interval="1000" OnTick="Timer1_Tick"></asp:Timer> <%-- GridView --%> <asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" EmptyDataText="No Records Found" AllowPaging="True" GridLines="Vertical" AlternatingRowStyle-CssClass="alt" SkinID="gridviewSkin" Width="100%" CssClass="label" DataSourceID="DataSource" DataKeyNames="EmpID" OnRowEditing="gv_RowEditing" OnRowCancelingEdit="gv_RowCancelingEdit" OnRowUpdating="gv_RowUpdating" OnRowDataBound="gv_RowDataBound" ShowHeaderWhenEmpty="true" OnRowCommand="gv_RowCommand" EnableViewState="false"> <AlternatingRowStyle CssClass="alt" /> <Columns> <asp:TemplateField HeaderText="Simple"> <ItemTemplate> <asp:Label ID="lblSimple" runat="server" Text='<%#Eval("Simple") %>' Width="40px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtSimple" runat="server" Text='<%#Eval("Simple") %>' Width="40px"></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <%-- Buttons --%> <asp:TemplateField ItemStyle-Width="100px"> <ItemTemplate> <%-- Edit --%> <asp:Button ID="btnEdit" runat="server" Text="Edit" CssClass="btn btn-link text-center" ToolTip="Edit Details" CommandName="Edit" UseSubmitBehavior="false" OnClick="btnEdit_Click" CausesValidation="false" /> <%-- Approve --%> <asp:Button ID="btnSimple" runat="server" Text="Approve" CssClass="btn btn-link text-center" ToolTip="Approve" OnClick="btnSimple" Enabled="false" /> </ItemTemplate> <EditItemTemplate> <asp:Button ID="btnUpdate" runat="server" Text="Update" CommandName="Update" CssClass="btn btn-link" UseSubmitBehavior="false" /> <asp:Button ID="btnCancel" runat="server" Text="Cancel" CommandName="Cancel" CssClass="btn btn-link" /> </EditItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:SqlDataSource runat="server" ID="DataSource" ConnectionString='<%$ ConnectionStrings:DefaultConnection %>' SelectCommand="SELECT [EmpID] FROM [Emp_Table]"></asp:SqlDataSource> </ContentTemplate> </asp:UpdatePanel>
с фоновым кодом:
Событие Загрузки Страниц
if(!IsPostBack) { foreach (GridViewRow row in gv.Rows) { aspBtnEdit = ((Button)row.FindControl("btnEdit")); btn = ((Button)row.FindControl("btnSimple")); aspBtnUpdate = ((Button)row.FindControl("btnUpdate")); aspBtnCancel = ((Button)row.FindControl("btnCancel")); } }
Здесь aspBtnEdit, БТН aspBtnUpdate, aspBtnUpdate несколько строк объявлен глобально