在网格视图行中输入键文本框未获取 id 选择

Posted

技术标签:

【中文标题】在网格视图行中输入键文本框未获取 id 选择【英文标题】:Enter key text box in Grid view Row not get id select 【发布时间】:2019-07-06 21:46:14 【问题描述】:

我想在单元格中填充数据后编辑网格视图中第 4 列的数据输入保存我只能保存第一行,同时这样做。

请帮助我,我尝试了每一个建议。

function controlEnter(obj, event) 
        var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
        if (keyCode == 13) 
            var time = $('[id*=txtdateN]').val();
            var row = $(this).closest("tr");
            var KULNid = $('[id*=txtID]').val();
            var Grid_EnterKey = document.getElementById(obj);
            var gKANRIZU_NO = obj;   
            var gSOK1 = $(this).closest('tr').find('.SOK1').val();
            var gSOK2 = $(this).closest('tr').find('.SOK2').val();
            var gSOK3 = $(this).closest('tr').find('.SOK3').val();
            var gSOK4 = $(this).closest('tr').find('.SOK4').val();
            $.ajax(
                type: "POST",
                url: "WebService.asmx/UpdategridG",
                data: "'KULN' :'" + KULNid + "', 'KANRIZU_NO': '" + gKANRIZU_NO + "' ,'SOK1': '" + gSOK1 + "' , 'SOK2': '" + gSOK2 + "' , 'SOK3': '" + gSOK3 + "', 'SOK4' : '" + gSOK4 + "','time' : '" + time + "' ",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: OnErrorCall_
            );

            function OnErrorCall_(repo) 

                alert("Something went wrong, pls check setting");
            
        
        else 
            return true;
        
    
    </script>
<asp:TemplateField HeaderText="SOK1" HeaderStyle-CssClass="text-center" ItemStyle-BackColor="#f4f7c9">
                        <ItemTemplate>
                            <asp:Label ID="lblSOK1" runat="server"></asp:Label>
                            <asp:TextBox ID="txtSOK1" ReadOnly="false" runat="server" CssClass="SOK1 hideControl form-control"></asp:TextBox> 
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txt01" ReadOnly="false" runat="server"></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="SOK2" HeaderStyle-CssClass="text-center" ItemStyle-BackColor="#f4f7c9">
                        <ItemTemplate>
                            <asp:Label ID="lblSOK2" runat="server"></asp:Label>
                            <asp:TextBox ID="txtSOK2" ReadOnly="false" runat="server" CssClass="SOK2 hideControl form-control"></asp:TextBox>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txt02" ReadOnly="false" runat="server"></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="SOK3" HeaderStyle-CssClass="text-center" ItemStyle-BackColor="#f4f7c9">
                        <ItemTemplate>
                            <asp:Label ID="lblSOK3" runat="server"></asp:Label>
                            <asp:TextBox ID="txtSOK3" ReadOnly="false" runat="server" CssClass="SOK3 hideControl form-control"></asp:TextBox>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txt03" ReadOnly="false" runat="server"></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="SOK4" HeaderStyle-CssClass="text-center" ItemStyle-BackColor="#f4f7c9">
                        <ItemTemplate>
                            <asp:Label ID="lblSOK4" runat="server"></asp:Label>
                            <asp:TextBox ID="txtSOK4" runat="server" CssClass="SOK4 hideControl form-control"></asp:TextBox>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txt04" runat="server"></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

【问题讨论】:

【参考方案1】:

只需传递要更新的所选列的唯一 ID 的 ClientID,并通过 ClientID 更新数据库行

在 ajax 中

data: 'ClientID': ClientID, 'others parames',

举例

$sql = "updated table set column1=value Where ClientID=20";

希望对你有帮助

【讨论】:

当我添加数据第二行 id = 2 但代码仅在文本框中第一行获取 id 和数据 点击编辑选项时按唯一 ID 编辑列 在列中单击并输入保存时按唯一 ID 编辑列 按唯一 id(db id) 编辑列,并按该唯一 id 更新行 var gSOK1 = $(this).closest('tr').find("[id*=txtSOK1]")[0].innerhtml; var gSOK2 = $(this).closest('tr').find("[id*=txtSOK2]")[0].innerHTML; var gSOK3 = $(this).closest('tr').find("[id*=txtSOK3]")[0].innerHTML; var gSOK4 = $(this).closest('tr').find("[id*=txtSOK4]")[0].innerHTML;

以上是关于在网格视图行中输入键文本框未获取 id 选择的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将新行添加到数据网格视图

Telerik获取所选ID(从Radgrid选择项目中获取数据)

如何使用行ID在gridx网格中选择一个复选框?

gridview 验证中的文本框

网格视图外键表示

在网格视图中添加文本框