使用 jQuery 和 asp.net 转发器自动完成填充 ID

2024-01-14

我有一个带有自动完成功能的 asp:Textbox,数据来自网络服务并返回 Json 数据。当选择一个项目时,它会将一个值(id)放入“隐藏”字段中,并将价格放入另一个文本框中。这一切都很好。但是当我将或多或少相同的代码放入 asp:repeater 中时,它不会执行自动完成。

这是我的 asp 代码的图表:

<script src="Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.8.10.custom.min.js" type="text/javascript"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>

<asp:TextBox runat="server" id="txtItem2" style="width:500px"/><br />  
<asp:TextBox runat="server" ID="txtHiddenItemID2"  />  <br />  
<asp:TextBox runat="server" ID="txtPrice2" />      

<asp:Repeater ID="rptArtLijnen" runat="server" 
    onitemcommand="rptArtLijnen_ItemCommand">
    <HeaderTemplate>
        <table border="Solid">
            <tr>....
            </tr>
    </HeaderTemplate>
    <ItemTemplate>
            <tr>
                <div class="ItemAutoComplete" id="ItemAutoCompleteDiv">
                    <td>
                            <asp:TextBox runat="server"  ID="txtItem" Text='<%#Eval("Item") %>' class="txtItemclass" />
                            <asp:TextBox ID="txtHiddenItemID" runat="server" class="txtHiddenItemclass"/>               
                    </td>
                    <td><asp:TextBox runat="server" ID="txtPrice" value='<%#Eval("Price") %>'/></td>
                </div>
            </tr>               
    </ItemTemplate>
    <FooterTemplate>
     </Table>
    </FooterTemplate>
</asp:Repeater>

这是我的 jQuery 代码:

$(document).ready(function () {
        //this handles the textbox out of the repeater
        $.ajax({
            type: "POST",
            url: "AutoCompleteItems.asmx/GetItemJ",
            dataType: "json",
            data: "{ 'data': '" + document.getElementById("txtItem2").value + "' }",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                $('#txtItem2').autocomplete({
                    minLength: 0,
                    source: data.d,
                    focus: function (event, ui) {
                        $('#txtItem2').val(ui.item.value);
                        return false;
                    },
                    select: function (event, ui) {
                        $('#txtItem2').val(ui.item.ItemCode + " " + ui.item.Description);
                        $('#txtHiddenItemID2').val(ui.item.ID);
                        $('#txtPrice2').val(ui.item.Price);
                        return false;
                    }
                });
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(textStatus + errorThrown);
            }
        });

        //this handles the textbox in the repeater
        $(".ItemAutoComplete").each(function (i, element) {
            var txtItem = $(this).find('input[id*=txtItem]:first')
            var txtHiddenItemID = $(this).find('input[id*=txtHiddenItemID]:first')
            var txtPrice = $(this).find('input[id*=txtPrice]:first')

            $.ajax({
                type: "POST",
                url: "AutoCompleteItems.asmx/GetItemJ",
                //async: false,
                //cache: false,
                dataType: "json",
                data: "{ 'data': '" + txtItem.val() + "' }",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    txtItem.autocomplete({
                        minLength: 0,
                        source: data.d,
                        focus: function (event, ui) {
                            txtItem.val(ui.item.value);
                            return false;
                        },
                        select: function (event, ui) {
                            txtItem.val(ui.item.ItemCode + " " + ui.item.Description);
                            txtHiddenItemID.val(ui.item.ID);
                            txtPrice.val(ui.item.Price);
                            return false;
                        }
                    });
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(textStatus + errorThrown);
                }
            });

        });
    });

这是我的网络方法(与文本框一起使用)和类:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<ItemJ>  GetItemJ(string data) {
   List<ItemJ> ItemJs = new List<ItemJ>();
    //if (Request.QueryString["q"] != null)
    //{
        try
        {
            DataContext d = new DataContext();
            List<string> typeList = "P R".Split(" ".ToCharArray()).ToList();
            //List<string> conditionList = "A D F".Split(" ".ToCharArray()).ToList();
            ItemJs = (from i in d.Items
                      join a in d.ItemAssortments on i.Assortment equals a.Assortment
                      where a.SecurityLevel <= 999
                      where i.SecurityLevel <= 999
                             && a.SecurityLevel <= 999
                             && i.IsSalesItem == true
                             && !typeList.Contains(i.Type.ToString())
                             && (new string[] { "A", "D", "F" }).Contains(i.Condition.ToString())
                             && (SqlMethods.Like(i.Description, "%" + data + "%") || SqlMethods.Like(i.ItemCode,  data + "%"))
                      orderby i.ItemCode
                      select new ItemJ
                      {
                          //value = i.ItemCode,// + " " + i.ItemCode + " ",
                          ItemCode = i.ItemCode,
                          Description = i.Description, //+ " " + i.ItemCode + " ",
                          ID = i.ID.ToString(),
                          Price = i.PurchasePrice.ToString()
                      }).Take(10).ToList();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
            //return null;
        }
    //}
    return ItemJs;
}


public class ItemJ //: Item
{
    //string _name;
    string _value;

    public string value
    {
        get { return _Description + " (" + _ItemCode + ")"; }
        //set { _value = value; }
    }
    string _Description;

    public string Description
    {
        get { return _Description; }
        set { _Description = value; }
    }

    string _ID;

    public string ID
    {
        get { return _ID; }
        set { _ID = value; }
    }

    string _ItemCode;
    public string ItemCode
    {
        get { return _ItemCode; }
        set { _ItemCode = value; }
    }
    string _Price;

    public string Price
    {
        get { return _Price; }
        set { _Price = value; }
    }

}

我花了几个小时研究这个,有人可以给我线索吗?


基本上问题是,你的文本框被放置在中继器控件内,因为这个jquery无法识别控件的唯一id,所以安装了jquery自动完成

尝试 AutoCompleteExtender 它会给你想要的输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery 和 asp.net 转发器自动完成填充 ID 的相关文章

  • 将MongoDb atlas数据库导出到本机Mongo compass

    我在 Atlas 中有一个名为 test 的远程数据库 我想将集合名称 image table 下载为 JSON 文件 在 Mac 终端中 mongoexport db test collection image table image j
  • 删除数据表列中的额外填充

    你好 我创建了 JQuery DataTables 如下所示 所以我的问题是如何删除 图片 列中过多的填充 这就是我初始化表的方式 violators tbl DataTable aoColumnDefs bSortable false a
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • jqgrid删除:没有获取值

    我使用 JSP 和 Servlet IDE Eclipse 数据库 Oracle10 开发 Web 应用程序 我在用JQGRID以表格格式显示数据 我还想要添加 编辑 删除的功能JQGRID 到目前为止我已经完成了编辑功能 现在我想要Del
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在 Play2 和 Scala 中解析没有数据类型的 JSON

    people name Jack age 15 name Tony age 23 name Mike age 19 这是我试图解析的 json 示例 我希望能够对每个人进行 foreach 操作并打印他们的姓名和年龄 我知道当 json 数
  • VSTS/TFS设置环境变量ASP.NET core

    我正在尝试使用 VSTS 将 ASP NET Core 应用程序部署到 IIS 并执行以下任务 然而 经过多次谷歌搜索和浏览 MS 文档后 我找不到为部署设置环境变量的方法 我在环境范围的发布定义中设置的变量未设置为环境变量 知道如何实现这
  • 如何在 jQuery 中获取 ul 列表中 li 的第一个 href 链接

    我有以下清单 ul class tabs li a href testlink php First link a li li a href testlink2 php Second link a li ul 我想获取第一个链接的 href
  • 删除某个类之后的所有类

    我有一个 lt div id thisdiv class class1 class2 class3 class4 class5 gt text lt div gt 我需要能够使用 jQuery 删除 class3 之后的所有类 就像是 th
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 同时从2个表中删除?

    我正在使用 asp net 和 sql 服务器 我有 2 个表 类别和产品 在产品表中 我的categoryId 为FK 我想要做的是 当我从类别表中删除类别时 我希望该类别中的所有产品都将在产品表中删除 如何才能做到这一点 我更喜欢使用存
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • ajax4jsf死了吗?还有哪些其他适用于 JSF 的 AJAX 库?

    我目前正在使用JBoss RichFaces http www jboss org jbossrichfaces 我正在从事的项目的 JSF 组件库 一般来说 它工作得很好 特别是 ajax4jsf A4J 提供的 AJAX 支持 但我发现
  • 在 iFrame 内维护会话状态

    不确定我是否疯了 但我在 iFrame 内的会话状态遇到问题 它是一个域在另一个域中的简单设置 我不需要跨域共享任何内容 我想做的就是将一个网站嵌入到另一个网站中 并且我希望该嵌入网站能够使用 cookie 会话状态登录 编辑 更新 等 为
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • ASP.NET Click() 事件在第二次回发时不会触发

    我有一个 ASP NET Web 表单 我第一次提交表单时 会引发 提交按钮单击 事件 表单返回到浏览器时可能会出现验证错误 或者可以选择使用新值再次提交表单 当再次提交表单时 提交按钮单击 事件永远不会触发 Page Load 触发 但按

随机推荐

  • 使用 C# 替换本机 .exe 中的字符串

    如何捕获本机 Windows exe 文件中的所有字符串 并稍后使用 C 将它们替换为其他字符串 背景 我想创建一个 C 工具来从简单的 exe 文件中提取和替换字符串 这有可能吗 您需要启动一个 PE COFF 解析器 如果你的字符串存储
  • 使用sql从多个字段中选择不同的字段

    我有 5 列对应于问答游戏数据库中的答案 对 错 1 错 2 错 3 错 4 我想返回所有可能的答案而不重复 我希望在不使用临时表的情况下完成此任务 是否可以使用类似的东西 select c1 c2 count from t group b
  • 受保护的成员/字段真的那么糟糕吗?

    现在 如果您阅读 MSDN 中 C 的命名约定 您会注意到它指出属性始终优先于公共字段和受保护字段 有些人甚至告诉我 你永远不应该使用公共或受保护的领域 现在我同意我还没有找到需要拥有公共领域的理由 但受保护的领域真的那么糟糕吗 如果您需要
  • 原始变量和引用变量的内存分配[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions type name 对于引用类型 这
  • Java:返回 java.util.Date 格式的字符串[重复]

    这个问题在这里已经有答案了 我将以 201201 格式接收输入 即 YYYYMM 格式 现在我想按原样返回值 201201 但它应该采用 java util Date 格式 我很困惑 String strDate 201201 Simple
  • Hadoop 溢出故障

    我目前正在开发一个使用 Hadoop 0 21 0 985326 以及一个由 6 个工作节点和一个头节点组成的集群的项目 提交常规 MapReduce 作业失败 但我不知道为什么 以前有人见过这个异常吗 org apache hadoop
  • MS-SQL 查询 - 更新通过存储过程检索的记录

    UPDATE 现在范围已经稍微扩大了 我现在需要检索字段 Id uri linkTo 这如何改变事情 我正在使用 MS SQL 2005 数据库并具有以下存储过程 CREATE PROCEDURE dbo getNewAds region
  • 将数据发送到单独的窗口 javascript

    我使用以下命令从现有页面创建了一个新的弹出窗口 window open myUrl myName width 200 height 200 现在 在该弹出窗口上 我有一个文本输入和一个按钮 我想为按钮创建一个 onclick 方法 将文本输
  • 三星 G5 setvisibility 出现空指针异常

    Android 应用代码可在各种设备上成功运行 包括早至 API 14 至 API 19 目标 但是 Samsung G5 v4 4 4 在尝试为活动设置 Visibilty true 时会抛出 NPE 此错误可能仅在最近通过 Sprint
  • 编组通知包

    我正在尝试将通知对象写入文件 我能找到的最好方法是将对象写入包 编组该包以获取字节 然后将其写入文件 Parcel notif Parcel obtain notification writeToParcel notif 0 byte no
  • 当 Go 返回多个值时到底发生了什么

    Go 函数和方法可以返回多个值 func learnMultiple x y int sum prod int return x y x y return two values 总和 产品 learnMultiple 10 50 是不是和返
  • 是否可以更改 Java ME 中的垃圾收集行为?

    我想知道是否可以调整垃圾收集器在 JavaMe 上的工作方式 以某种方式提高性能 可能会减少段落数量 我看过一些关于它的文章 但大多是针对 Java SE 的 其中大多数都说 GC 高度依赖于制造商 那会是多少呢 垃圾收集器何时被触发在很大
  • 如何在Featuretools中实现加权和变换基元?

    我试图弄清楚如何为Featuretools 实现加权总和原语 权重应取决于 time since last 就像 cum sum 金额 sum i exp a i amount i where i正在滚动 6 个月期 在上面你可以找到原来的
  • 当弹出窗口处于活动状态时,如何与 ionic 中的后台项目进行交互?

    离子版本 1 x 平台 全部 我有一个使用离子弹出框的离子应用程序 但是 当弹出窗口处于活动状态 打开 时 我无法再与后台中的事物交互 例如向下滚动我的项目列表 我曾尝试寻找此问题的现有答案 但没有看到提出的问题 弹出窗口本身不必绑定到页面
  • AngularJs 如何从轮询服务获取数据到控制器

    我有这个service它检查后端是否有新数据 它工作正常 但问题是我无法使用从服务到控制器的数据 watch也不使用promise SERVICE service notificationPollService function q htt
  • Create-react-app 控制台显示块文件

    I would like to debug some errors happening during my React development As you can see I can t see the source files I am
  • Exoplayer 从字节数组播放音频 - ByteArrayDataSource

    使用 Exoplayer 我尝试播放字节数组中的音频文件 我正在尝试使用 ByteArrayDataSource 但在调用构造函数时出现错误 new ByteArrayDataSource data 这是我想出的代码 private voi
  • 角度表达式在 Chrome 扩展中计算,但在 Edge 扩展中不计算

    我有一个简单的浏览器扩展 使用 Angular v1 6 3 但是浏览器扩展的弹出窗口中的 Angular 表达式无法在 Edge 中计算 但在 Chrome 中却可以 Angular 的表达式很简单 div 2 2 div 当我浏览到相关
  • 排序在 jQuery 数据表中不起作用

    我在一页中有两个内联表 排序适用于一个数据表 但不适用于其他数据表 一次调用两个 div 但排序仅适用于一个数据表 div1 DataTable processing true destroy true paginate true leng
  • 使用 jQuery 和 asp.net 转发器自动完成填充 ID

    我有一个带有自动完成功能的 asp Textbox 数据来自网络服务并返回 Json 数据 当选择一个项目时 它会将一个值 id 放入 隐藏 字段中 并将价格放入另一个文本框中 这一切都很好 但是当我将或多或少相同的代码放入 asp rep