私のカスタムコントロールを.aspxページに配置すると、IDがレンダリングされる理由はわかりません。したがって、私はページにいくつかのJavaScriptも書いていますが、真ん中には私のコントロールのこの名前が付いていますので、JavaScriptがうんざりしています。カスタムコントロールは、その名前をソースに吐き出すことです!
だから私の.aspxの中で、私が持っている:
<pm:Car ID="ProductCar" runat="server"/>
そしてここでは、レンダリングされ始めるものです:
<script type="text/javascript">
var ctl00_mainContent_ProductCar
lastProductID;var ctl00_mainContent_ProductCar
carSize;
...
あなたがctl00_mainContent_ProductCarを見ることができるようにIDあり、それはとても右VAR後にレンダリングされています最終的に私はJavaScriptでlastProductIDエラーが見つかりませんでした。テキストctl00_mainContent_ProductCaが途中にあるためです。 (更新)
protected override void Render(HtmlTextWriter writer)
{
writer.Write(BuildCarJavaScript());
}
は単にページへのJavaScriptの束を出力します。私のJavaScriptのどこにも、私が見ているようにクライアントIDだけを出力しているところはありません。あなたが期待される正確にわからない
carJavaScript.Append(@"<script type=""text/javascript"">" + "\r\n");
carJavaScript.AppendFormat("var {0}lastProductID;", this.ClientID + "\r\n");
...
問題の原因を特定するために、カスタムコントロールのレンダリングコードを提供する必要があります。 – CAbbott
多分もっと具体的なはずでした。たとえば、 "var .... LastProductID"をレンダリングするコードを投稿すれば、それが役に立ちます。 – CAbbott
最初の投稿を編集しました。それは今そこにある。 – PositiveGuy