如何编码__doPostBack()函数的内容

时间:2010-12-14 08:36:31

标签: javascript asp.net function dopostback

例如:

href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$PlaceHolderMain$g_188da349_7fe9_42f0_9a95_40cee6cd37a4$ctl00$ctl05$lbtnApplicationName','')">

这些内容背后是什么?

1 个答案:

答案 0 :(得分:1)

这是发送到浏览器的“服务器端”链接按钮的HTML的一部分:

<asp:LinkButton id="lbtnApplicationName" runat="server" OnClick="SomeFuncHere" Text="Get Application Name" />

此按钮位于默认情况下名为ctl05的未命名控件内,并且位于其他没有名称的控件内,因此获得了默认名称ctl00等等等等。

通常,ASP.NET框架正在根据其直接ID构建元素的最终ID,并链接其父控件的ID - 包括内容占位符。
对于表单元素,他们的name以类似的方式构建,但不是_,而是使用$来“链接”父母的ID。

为什么呢?避免在同一HTML文档中有多个具有相同ID的元素的可能性。 (或者当它们位于不同的控件中时,两个具有相同名称的表单元素)

现在这个最后的ID用于告诉服务器调用PostBack的控件是什么 - 这是通过框架自动写入页面来实现的,该框架将元素的ID作为其参数。