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

ただし、(マスターページから)コンテンツプレースホルダーの概念を導入して以来、ObjectExpectedエラーが繰り返し発生します。

これが発生している理由がわかりました。asp.netはCPHを考慮してコントロール名を修正しています。$('#ctl00_ContentPlaceHolder1_radBuyer').attr('checked', true);

この問題を解決し、これを考慮してasp.netコントロールの名前を効果的に「変更」するにはどうすればよいですか?

4

1 に答える 1

0

いくつかのオプション...

1つは、コントロール名を<%= radProcAC.ClientID%>のようなスクリプトに置き換えます。これはやや面倒ですが、実装が非常に簡単であるという利点があります。

2つ目は、ClientIDをjavascriptに書き込み、RegisterClientScriptを使用してこれをページに出力します。そのため、クライアント側では次のようになります。

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

次に、明らかに、生のコントロール名ではなく、これらの変数を使用します。

とにかく、これは非常に一般的な問題であり、少しのグーグル検索でそれについて書かれたあらゆる種類の記事を見つけることができます。

于 2010-01-29T21:06:13.003 に答える