我创建了一个小型Web应用程序,用于显示所选员工数据。在这个应用程序中,我编写了一个javascript。我创建了一个包含用户名详细信息的下拉框,并在每个用户面前都有一个复选框。这些用户名来自数据库。
我希望经理下拉列表并选择他想要查看详细信息的员工。我在javascript的帮助下做到了这一点,但问题是当它从主页面中成为saparate形式时,它成功地在下拉列表中显示用户名,但是当我将其与母版页合并时意味着使其成为该母版页的内容页面在下拉列表中显示用户名。
显示空白。我做错了哪里。任何建议将不胜感激。
提前谢谢。
答案 0 :(得分:1)
正如Pleun所说,母版页将更改呈现给浏览器的HTML控件ID。这有几种方法如果您使用的是asp.net 4,您可以按如下方式指定客户端ID:
<asp:Label Text="text" runat="server" ID="SomeID" ClientIDMode="Static" />
这将保持呈现给浏览器的ID。
如果您是asp.net以前版本的用户,那么我倾向于使用JQuery来获取控件,例如:
$("[id$='SomeId']")
$=
表示以。结尾。
您还可以将用户服务器标记与javascript代码混合在一起,例如
var control = document.getElementById("<% =SomeId.ClientId %>");
然后,asp.net将使用服务器ID SomeId 呈现它分配给控件的任何客户端ID
答案 1 :(得分:0)
母版页更改控件的名称:
看看这里: http://www.asp.net/master-pages/tutorials/control-id-naming-in-content-pages-cs
(不是你的问题 - 但是功能也可以在没有自己编码的情况下使用ASP.NET开箱即用)
答案 2 :(得分:0)
您需要在函数中提供控件的客户端ID。 当您使用母版页时,ur的id控制更改。 例如: Checkbox chktest的clientID将是没有母版页的chktest。但是在使用母版页时,clientID会更改为'ctl00_ContentPlaceHolder1_chktest'
因此,如果您在使用母版页时使用chktest,则javascript将无法检测到您的函数将无法正常工作。请使用控件的clientId。