【问题标题】:Tagging Input for that works with ASP.Net标记输入适用于 ASP.Net
【发布时间】:2013-11-27 18:15:10
【问题描述】:

我正在http://webspirited.com/tagit/ 使用 jquery tagit 插件。它非常适合我的需要,但我无法让它更新 asp:BulletList,因为它是一个服务器控件。

我知道使用 ajax/updatepanel 有一些变通方法,但我需要在回发期间以与其他控件相同的方式工作。

asp.net 是否有任何控件允许标记?

【问题讨论】:

    标签: asp.net controls tagging


    【解决方案1】:

    我在构建网站时也使用了 jQuery tagit……我遇到了与您描述的相同的问题。我设法克服了所有问题并让它工作,但它绝对不是对开发人员友好的。最后,我们用 ASP.NET Web API 替换了更新面板,用于部分页面渲染(顺便说一句,你应该这样做),并创建了我们自己的标记插件。 jQuery Tagit 插件肯定有一些错误,所以创建我们自己的插件最终是最好的解决方案。这是您在使用 jQuery Tagit 和更新面板时会遇到的问题...


    Javascript 在更新面板刷新时丢失引用

    首先,当更新面板刷新时,您会丢失所有 javascript 引用。您可以通过在页面请求结束时重新定义它们来刷新这些引用。您可以使用页面请求管理器来完成此操作。这是一个例子:

    向您的 javascript 添加一个函数,重新定义位于更新面板中的所有 javascript 引用:

    <script type="text/javascript">
        function contentPageEvents(){
            var myTagitDiv = $('.myTagitDiv')
        }
    </script>
    

    然后您可以在页面末尾添加以下内容:

    <script type="text/javascript">
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(contentPageEvents);
    </script>
    

    ASP.NET 更改其服务器端控件的 ID

    为了引用 ASP.NET 控件,您必须使用 ClientIdMode="Static",或者引用控件的 CSS 类而不是 ID。只要您有效地使用 CssClass 属性,ASP.NET 控件就具有与普通 HTML 控件几乎相同的可定制性级别。


    不要使用更新面板

    最后,您真的根本不应该使用更新面板。 ASP.NET 更新面板旨在模拟部分页面呈现,但实际上并不执行它。如果您打算构建一个像样的网站并希望使用部分页面呈现,您应该开始考虑使用 MVC 4 附带的新 Web API 控制器类。这个神奇的工具可以在 Web 窗体项目中轻松实现。它内置在 Visual Studio 2012 中,可以下载以在 Visual Studio 2010 中使用。下面是一个教程链接,介绍如何创建可以将项目发布到数据库的 Web api:

    asp.net mvc - Posting JSON data via jQuery to ASP.NET MVC 4 controller action (Stack Overflow)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 2021-01-06
      • 1970-01-01
      相关资源
      最近更新 更多