【问题标题】:Jquery Tag it in asp.netJquery 在 asp.net 中标记它
【发布时间】:2015-04-30 10:08:48
【问题描述】:

我正在使用 jQuery UI 小部件 Tag it。我正在使用的代码工作正常,但所有标签值在浏览器上可见。

我使用的代码如下

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
      <script src="../JavaScript/tag-it.js"></script>
    <link href="../CSS/tagit.ui-zendesk.css" rel="stylesheet" />
    <link href="../CSS/jquery.tagit.css" rel="stylesheet" />
    <script>
        $(function(){
           var sampleTags = [<%# this.SuggestionList %>];
            //var sampleTags = ['c++', 'java', 'php', 'coldfusion', 'javascript', 'asp', 'ruby', 'python', 'c', 'scala', 'groovy', 'haskell', 'perl', 'erlang', 'apl', 'cobol', 'go', 'lua'];
            $('#myTags').tagit();         
            $('#singleFieldTags').tagit({
                availableTags: sampleTags,            
                allowSpaces: true,
                singleFieldNode: $('#mySingleField')
            });
           });
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div id="content">
            <p>              
                <input name="tags" id="mySingleField" value="Apple, Orange" disabled="true">
            </p>
            <ul id="singleFieldTags"></ul>
    </div> 
    </form>
</body>

后面的代码

string queryString = "select * from SIB_KWD_Library ORDER BY Keyword asc";

    using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["vConnString"].ToString()))
    {

        using (SqlCommand command = new SqlCommand(queryString, connection))
        {

            connection.Open();

            using (SqlDataReader reader = command.ExecuteReader())
            {

                while (reader.Read())
                {

                    if (string.IsNullOrEmpty(SuggestionList))
                    {
                        SuggestionList += "\'" + reader["Keyword"].ToString() + "\'";
                    }
                    else
                    {
                        SuggestionList += ", \'" + reader["Keyword"].ToString() + "\'";
                    }

                }
            }
        }
    }

在浏览器源代码中,所有标签关键字都是可见的。像

var sampleTags = ['c++', 'java', 'php', 'coldfusion', 'javascript', 'asp','ruby','python','c','scala','groovy','haskell','perl', 'erlang', 'apl', 'cobol', 'go', 'lua'];

请建议任何其他方式来做到这一点。

提前致谢:)

【问题讨论】:

  • 你遇到了什么问题?
  • @Adil 所有关键字在浏览器源代码中都是可见的。我想隐藏这个。不。关键字的数量高达 100 万。
  • 在浏览器源代码中,所有标签关键字都是可见的.....是的,因为您正在使用它们...如果您不想全部使用它们,请限制它
  • select * from SIB_KWD_Library ORDER BY Keyword asc ,把一些 where 或 top 子句放在这里
  • @ShekharPankaj 这就是我发布问题的原因。对于如何隐藏这些关键字的建议,还有其他方法吗?

标签: c# jquery asp.net jquery-ui tag-it


【解决方案1】:

使用&lt;%= this.SuggestionList %&gt; 而不是&lt;%# this.SuggestionList %&gt;

JS:-

 <script>
        $(function(){
           var sampleTags = [<%= this.SuggestionList %>];
            //var sampleTags = ['c++', 'java', 'php', 'coldfusion', 'javascript', 'asp', 'ruby', 'python', 'c', 'scala', 'groovy', 'haskell', 'perl', 'erlang', 'apl', 'cobol', 'go', 'lua'];
            $('#myTags').tagit();         
            $('#singleFieldTags').tagit({
                availableTags: sampleTags,            
                allowSpaces: true,
                singleFieldNode: $('#mySingleField')
            });
           });
    </script>

编辑

JS:-

<script>
    $(function () {
        $.ajax({
            url: "http://"+location.host + '/Default.aspx/GetKeywords',
            type: 'GET',
            datatype: "json",
            contentType: "application/json; charset=utf-8",
            success: function(res) {
                $('#singleFieldTags').tagit({
                    availableTags: res.d,
                    allowSpaces: true,
                    singleFieldNode: $('#mySingleField')
                });
            },
            failure: function(err) {
                alert(err);
            }
        });
    });

</script>

CS:-

    [WebMethod]
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
    public static string[] GetKeywords()
    {
        List<string> lst = new List<string>();
        string queryString = "select * from SIB_KWD_Library ORDER BY Keyword asc";
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["vConnString"].ToString()))
        {
            using (SqlCommand command = new SqlCommand(queryString, connection))
            {
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {

                    while (reader.Read())
                    {
                        lst.Add(reader["Keyword"].ToString());
                    }
                }
            }
        }
        return lst.ToArray();
    }

只需将lst 替换为从数据库返回的关键字即可。

【讨论】:

  • 没关系,但我的问题不像你回答的那样:(
  • @Gitz 编写一个 ajax 方法,使用 WebMethod 从服务器获取列表,并在内部成功使用您的 tagit 代码。
  • @wix 孩子,这就是我要找的。实际上,从后面的代码直接调用很容易,但所有关键字都可以在浏览器源代码中看到。我想直接从 sql sever 绑定它
  • @Gitz 请在我的回答中查看编辑。
  • 好的!!我正在尝试:) 我会告诉你的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
相关资源
最近更新 更多