jQuery和ASP.Net Resources&Gotchas

什么是一些好的jQuery资源以及与ASP.Net一起使用它时的一些问题?

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

接下来,正如前面提到的那样,是ID。 如果你有时间和倾向,我实际上将所有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; } 

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

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

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

Rick Strahl的博客是一个很好的起点。 他有很多jQuerypost。