【问题标题】:jQuery & ASP.Net Resources & Gotchas [closed]jQuery 和 ASP.Net 资源和陷阱 [关闭]
【发布时间】:2010-09-19 11:38:33
【问题描述】:

在与 ASP.Net 一起使用时,有哪些好的 jQuery 资源以及一些陷阱?

【问题讨论】:

    标签: javascript jquery asp.net .net resources


    【解决方案1】:

    需要注意的一点是,如果您将 WebMethods 用于 Ajax,出于安全原因,响应值将被包装在名为“d”的对象中。您必须解开该值,这通常不是问题,除非您使用依赖于 jquery ajax 的组件(例如 jqGrid 插件)。为了解决这个问题,我只是更改了网格中调用 ajax 的代码并插入了一些代码来解包。我确实计划向 jquery 团队发送一些代码,看看它是否可以被未来的版本接受。

    如前所述,接下来的事情是 ids。如果您有时间和兴趣,我实际上将所有 HTML 控件子类化,以使参与 NamingContainer 成为可选,如下所示:

    protected override void RenderAttributes(HtmlTextWriter writer) {
        HtmlControlImpl.RenderAttributes(this, writer);
    }
    

    然后辅助对象(防止在每个对象中编写相同的代码)如下所示:

    public static void RenderAttributes(IFormControl cntrl, HtmlTextWriter writer) {
        if (cntrl.ID != null) {
            cntrl.Attributes.Remove("id");
            cntrl.Attributes.Remove("name");
            writer.WriteAttribute("id", cntrl.RenderedId);
            writer.WriteAttribute("name", cntrl.RenderedName);
        }
        cntrl.Attributes.Render(writer);
        HtmlContainerControl containerCntrl = cntrl as HtmlContainerControl;
        if (containerCntrl == null)
            writer.Write(" /");
    }
    
    public static string GetRenderedId(IFormControl cntrl) {
        return cntrl.UseNamingContainer ? cntrl.ClientID : cntrl.ID;
    }
    
    public static string GetRenderedName(IFormControl cntrl) {
        return cntrl.UseNamingContainer ? cntrl.UniqueID : cntrl.ID;
    }
    

    【讨论】:

      【解决方案2】:

      Rick Strahl's Blog 是一个很好的起点。他有很多 jQuery 帖子。

      【讨论】:

        【解决方案3】:

        ASP.Net 的自动生成 id 使得使用 jQuery 的选择器语法有些困难。

        解决这个问题的两种简单方法:

        • 使用 css 类而不是 id 搜索对象
        • 您可以使用以下命令清除 uniqueid 垃圾:$('[id$=myid]')

        【讨论】:

        • 感谢您提供有关 $('[id$=myid]') 的说明。我终于可以摆脱我的“独特垃圾”了!
        • 哇!我不知道 [id$=myId] 会做什么,所以我在the documentation 中查找了它。匹配结束,就这么简单!打赌它使用正则表达式。您可以通过始终以“_”开头来进一步增强它。谢谢!你会得到一颗金星!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-29
        • 2010-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-19
        相关资源
        最近更新 更多