Webforms和jQuery,如何匹配ID?

Bla*_*man 11 asp.net jquery web-controls

我想在asp.net webfoms中使用jQuery.我是否需要获得一个特殊的工具包,以便.net控件吐出友好的控件ID?

原因是,我不想写javascript引用我的HTML ID,如control_123_asdfcontrol_234.

这是否已在3.5版中解决?(我记得读过你必须得到一些让ID友好的特殊dll).

CMP*_*mer 15

我找到的最简单的方法是匹配大多数控件的损坏ID的末尾.知道的例外是radiobutton列表和复选框列表 - 你必须对它们有点棘手.

但是如果你在.aspx页面中有这个:

<asp:TextBox ID="txtExample" runat="server" />
Run Code Online (Sandbox Code Playgroud)

然后你的jQuery可以很容易地找到那个控件,即使它被主页面渲染所破坏,如下所示:

$("[id$=txtExample]")
Run Code Online (Sandbox Code Playgroud)

$=运营商匹配字符串的结束和名字改编总是在前面.完成后,您可以获得如下的实际受损ID:

$("[id$=txtExample]").attr("id")
Run Code Online (Sandbox Code Playgroud)

然后解析你认为合适的任何东西.

编辑:这是一种简单的方法,但它可能更多的是性能损失,而不仅仅是给每个控件一个类与旧ID相同.

看到这篇文章杰夫发布了另一个jQuery优化问题的链接:

jQuery:选择器的性能分析

  • 如果您从一开始就使用WebForms,很可能您实际上并不太在意诸如性能之类的事情。 (2认同)

Dav*_*emp 10

您可以使用myControlId = "<%= myControl.ClientID %>"; 输出用于在Javascript中引用它的(非友好)ID.