javascript - OnRowEditing 编辑文本框焦点

标签 javascript c# jquery gridview

我想做的是,在 GridView_OnRowEditing 事件上,我想关注我正在编辑的单元格中出现的文本框。从那里我将触发一个 JavaScript 键盘,但我需要先关注文本框,然后才能执行任何操作。

这是我当前的代码:

protected void GridView_OnRowEditing(object sender, GridViewEditEventArgs e)
    {
        var row = GridView.Rows[e.NewEditIndex];
        var gridText = (TextBox) row.Cells[5].Controls[0];
        gridText.Focus();
    }

编辑:

这是我的 GridView 标记。我没有手动设置文本框。如果无论如何要检索在 RowEditing 事件上转换为文本框的单元格的 ID,请告诉我。谢谢。

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AutoGenerateEditButton="True" DataKeyNames="RollNumber" DataSourceID="WoSource" HorizontalAlign="Center" 
        OnRowUpdating="GridView1_RowUpdating" AllowSorting="true" Visible="True" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_OnRowEditing" OnRowCancelingEdit="GridView1_OnRowCancelingEdit" Width="100%">
        <Columns>
            <asp:BoundField DataField="WorkOrderNo" HeaderText="WorkOrderNo" ReadOnly="True" SortExpression="WorkOrderNo" Visible="False"/>
            <asp:BoundField DataField="RollNumber" HeaderText="RollNumber" ReadOnly="True" SortExpression="RollNumber" />
            <asp:BoundField DataField="ModelNumber" HeaderText="ModelNumber" ReadOnly="True" SortExpression="ModelNumber" />
            <asp:BoundField DataField="QtyGood" HeaderText="QtyGood" ReadOnly="True" SortExpression="QtyGood" />
            <asp:BoundField DataField="QtyRun" HeaderText="QtyRun" SortExpression="QtyRun"><ControlStyle Width="100%" Height="100%" Font-Size="36px"></ControlStyle></asp:BoundField>
        </Columns>
    </asp:GridView>

最佳答案

在 @okisinch 的帮助下,我发现我可以做到这一点:

        $('#<%=GridView1.ClientID%> :input:enabled:visible:first').focus();
        $('#<%=GridView1.ClientID%> :input:enabled:visible:first').select();

这样做的好处是我不需要找到文本框 ID 就能获得焦点。

这个link是对我有帮助的资源。

编辑:发现此代码也有效。请注意,#insideContainer 是已实现的 jquery 键盘。我想我应该添加我所做的触发。

    $(function () {
        if ($('#<%=GridView1.ClientID%> :input:enabled:visible:first').val()) {
            $('#<%=GridView1.ClientID%> :input:enabled:visible:first').focus();
            $('#<%=GridView1.ClientID%> :input:enabled:visible:first').select();
            $('#insideContainer').show();
        } else {
            $('#insideContainer').hide();
        }
    });

关于javascript - OnRowEditing 编辑文本框焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28629999/

相关文章:

javascript - 查找最多两位小数的数字的 REGEXP

javascript - 使用记录和来源时出错

javascript - 如何仅在 react 文档的特定字段发生变化时才运行跟踪器计算?

c# - 500.19 - 内部服务器错误 - 无法访问请求的页面,因为该页面的相关配置数据无效

c# - 一道C#的字符串替换题

javascript - 更改类似表格的项目顺序

javascript - 如何对 jquery 数据表中的多个列进行分组

javascript - 如何在js中添加更多输入名称?

javascript - MEANJS : 413 (Request Entity Too Large)

c# - 从第三个项目中的两个 C# 项目调用表单