内容占位符Javascript对象预期错误

时间:2010-01-29 10:49:39

标签: asp.net javascript master-pages contentplaceholder

我有以下代码,直到最近,工作正常和花花公子!

tbxProdAC.Attributes.Add("onclick", "$('#" + GridView1.ClientID  + "').remove();
$('#" + radProdAC.ClientID  + "').attr('checked', true);
$('#" + ddlBuyer.ClientID  + "').val('--Choose Buyer--');
$('#" + ddlSub.ClientID  + "').val('--Choose Sub Category--');
$('#" + ddlProd.ClientID  + "').val('--Choose Product--');");

然而,自从我介绍了内容占位符的概念(从母版页)以来,我一再重复获取对象预期错误。

现在我明白为什么会发生这种情况,asp.net正在修改控制名称以考虑CPH,即$('#ctl00_ContentPlaceHolder1_radBuyer').attr('checked', true);

我如何解决此问题,有效地“重命名”我的asp.net控件以将其考虑在内?

1 个答案:

答案 0 :(得分:0)

几个选项......

一,用<%= radProcAC.ClientID%>等脚本替换控件名称。这有点混乱,但具有易于实施的优点。

二,将ClientID写入javascript并使用RegisterClientScript将其输出到您的页面。所以在客户端你会有这样的东西:

var radProdACClientID = 'ctl00_ContentPlaceHolder1_radBuyer';
var ddlBuyerClientID = 'ctl100_ContentPlaceHolder1_ddlBuyer';

然后显然你会使用这些变量而不是原始控制名称。

无论如何,这是一个非常常见的问题,您可以通过一些谷歌搜索找到所有关于它的文章。