如何在Asp.Net中使用Tagedit插件

时间:2013-05-02 11:56:06

标签: jquery asp.net json tags

我想在项目中添加Tagedit插件,以便为文本框添加名称。 我的要求是: 1.文本框应具有现有名称的自动完成功能。 2.如果在现有数据中找不到新名称,它应该能够接受新名称,类似于堆栈溢出中的标签文本框

以下是该插件的链接:

http://tagedit.webwork-albrecht.de/

http://tagedit.webwork-albrecht.de/playground.html

为此,我使用了ajax JSON& webservice从数据库中获取值

步骤1:向aspx页面添加了控件

<form id="form1" runat="server">
    <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:TextBox ID="txtEmpNames" runat="server" ></asp:TextBox>
        <img alt="" src="" />
    </div>
    <input type="hidden" id="hfJsonData" />
    </form>

步骤2:在页面中添加了jquery和CSS的相关链接

<link href="App_Styles/jquery-ui-1.10.2.css" rel="stylesheet" type="text/css" />
    <link href="App_Styles/CRMStyles.css" rel="stylesheet" type="text/css" />
    <link href="App_Scripts/JqPlugins/Autocomplete/Tagedit-master/css/jquery.tagedit.css"
        rel="stylesheet" type="text/css" />
    <script src="App_Scripts/jquery-1.9.1.js" type="text/javascript"></script>
    <script src="../../App_Scripts/jquery-ui.min.js" type="text/javascript"></script>
    <script src="App_Scripts/JqPlugins/Autocomplete/Tagedit-master/js/jquery.tagedit.js"
        type="text/javascript"></script>

步骤3:添加了从webservice

获取数据的脚本
<script type="text/javascript">
        $(document).ready(function () {
            fnGetemployess();
            var localdata = [$("#hfJsonData").val()];
            debugger;
            $('#<%=txtEmpNames.ClientID %>').tagedit({ autocompleteOptions: { source: localdata} });

        });
        function fnGetemployess() {
            var jsonData;
            $.ajax({
                type: "POST",
                url: "http://localhost:7253/Webservice.asmx/Getemployees",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {

                    fnArrangedata(response.d);
                },
                failure: function (response) {
                    alert('Failed to get employees');
                }
            });


            var array = $("#hfJsonData").val();

        }

        function fnArrangedata(list) {
            var array = new Array();
            for (var i = 0; i < list.length; i++) {
                array.push("{\"value\":\"" + list[i].ename + "\",\"empno\":\"" + list[i].empno + "\",\"sal\":\"" + list[i].sal + "\"}");
            }

            $("#hfJsonData").val(array);
        }
    </script>

Step4:添加了webservice Code以从数据库中获取数据

[WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
  public List<empCls> Getemployees()
        {
            List<empCls> Employees = new List<empCls>();
            List<emp> emps = new CRMTestDataContext().emps.ToList();
            foreach (var item in emps)
            {
                empCls em = new empCls
                {
                    ename = item.ename,
                    empno = item.empno,
                    sal=item.sal
                };
                Employees.Add(em);
            }
            return Employees;
        }

Step5:我从Webservice获得以下结果

    <ArrayOfEmpCls>

<empCls><empno>1</empno><ename>JOHNSON</ename><sal>18000.00</sal>
</empCls><empCls><empno>2</empno><ename>HARDING</ename><sal>52000.00</sal>
</empCls><empCls><empno>3</empno><ename>TAFT</ename><sal>25000.00</sal>
</empCls><empCls><empno>4</empno><ename>HOOVER</ename><sal>27000.00</sal>
</empCls><empCls><empno>5</empno><ename>LINCOLN</ename><sal>22500.00</sal>
</empCls><empCls><empno>6</empno><ename>GARFIELD</ename><sal>54000.00</sal>
</empCls><empCls><empno>7</empno><ename>POLK</ename><sal>25000.00</sal>
</empCls><empCls><empno>8</empno><ename>GRANT</ename><sal>32000.00</sal>
</empCls><empCls><empno>9</empno><ename>JACKSON</ename><sal>75000.00</sal>
</empCls><empCls><empno>10</empno><ename>FILLMORE</ename><sal>56000.00</sal>
</empCls><empCls><empno>11</empno><ename>ADAMS</ename><sal>34000.00</sal>
</empCls><empCls><empno>12</empno><ename>WASHINGTON</ename><sal>18000.00</sal>
</empCls><empCls><empno>13</empno><ename>MONROE</ename><sal>30000.00</sal>
</empCls><empCls><empno>14</empno><ename>ROOSEVELT</ename><sal>35000.00</sal>

</empCls></ArrayOfEmpCls>

步骤6:我已使用第3步将webservice响应更改为jquery数组

{"value":"JOHNSON","empno":"1","sal":"18000"},
{"value":"HARDING","empno":"2","sal":"52000"},
{"value":"TAFT","empno":"3","sal":"25000"},
{"value":"HOOVER","empno":"4","sal":"27000"},
{"value":"LINCOLN","empno":"5","sal":"22500"},
{"value":"GARFIELD","empno":"6","sal":"54000"},
{"value":"POLK","empno":"7","sal":"25000"},
{"value":"GRANT","empno":"8","sal":"32000"},
{"value":"JACKSON","empno":"9","sal":"75000"},
{"value":"FILLMORE","empno":"10","sal":"56000"},
{"value":"ADAMS","empno":"11","sal":"34000"},
{"value":"WASHINGTON","empno":"12","sal":"18000"},
{"value":"MONROE","empno":"13","sal":"30000"},
{"value":"ROOSEVELT","empno":"14","sal":"35000"}

现在,当运行页面时,我既没有收到错误也没有插件工作。 在这种情况下,我要求所有成员帮助我。 在此先感谢您的帮助。

0 个答案:

没有答案