我在http://webspirited.com/tagit/玩jquery tagit插件。它非常适合我需要但我无法更新asp:BulletList,因为它是服务器控件。
我知道有一些使用ajax / updatepanel的解决方法,但我需要的东西在回发期间的工作方式与其他控件相同。
asp.net是否有任何控件允许标记?
答案 0 :(得分:0)
我在构建我的网站时也使用了jQuery tagit ......我遇到了你所描述的相同问题。我设法克服了所有问题并使其工作,但它绝对不是开发人员友好的。最后,我们将ASP.NET Web API的更新面板替换为部分页面呈现(顺便说一下,这应该是这样做的),并创建了我们自己的标记插件。 jQuery Tagit插件肯定有一些bug,所以创建我们自己的最终是最好的解决方案。以下是jQuery Tagit和Update Panels遇到的问题......
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 Controller类。这个神奇的工具可以在Web Forms项目中轻松实现。它内置于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)