0

我有以下代码,直到最近,它工作得很好而且花花公子!

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--');");

但是,自从我介绍了内容占位符的概念(来自母版页)以来,我反复收到 Object Expected 错误。

现在我明白为什么会这样了,asp.net 正在修改控件名称以考虑 CPH,即$('#ctl00_ContentPlaceHolder1_radBuyer').attr('checked', true);

我该如何解决这个问题,有效地“重命名”我的 asp.net 控件以考虑到这一点?

4

1 回答 1

0

几个选项...

一,用 <%=radProcAC.ClientID%> 之类的脚本替换控件名称。这有点混乱,但具有非常容易实现的优点。

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

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

那么显然你会使用这些变量而不是原始控件名称。

无论如何,这是一个非常普遍的问题,你可以通过谷歌搜索找到各种关于它的文章。

于 2010-01-29T21:06:13.003 回答