2016-04-25 14 views
0

私は2つのカスタムコントロールを持っています。私は、コンポジットコントロールを継承するセレクタとドロップダウンリストから継承するドロップダウンを持っています。私のセレクタがレンダリングされるとき、2番目のカスタムコントロールは、2つのIDを持って終わる何らかの理由でASP.net Webフォームカスタムコントロールは自動的に次のコントロールのIDを変更します

<table border="0" cellpadding="0" cellspacing="3" width="100%">       
     <tr> 
      <td class="a12bold" style="padding: 0px 0px 5px 0px;">contact:</td> 
      <td> 
       <div><cc:Selector id="SelectorID" runat="server" Width="300" /> </div>         
      </td> 
     </tr> 
    </table> 
    <table border="0" cellpadding="0" cellspacing="3" width="100%"> 
     <tr> 
      <td class="a12bold" style="padding: 0px 0px 5px 0px;">Category:</td> 
      <td><cm:DropDown id="dropDownID" runat="server" Width="350px" AutoSelectSingleRow="true"></cm:DropDown></td> 
     </tr> 
    </table> 

:以下は私のaspxページからコードスニペットです。以下は2番目のコントロールのレンダリングです:

 <td><select id="SelectorID" name="dropDownID" id="dropDownID" style="width:350px;"> 
    <option selected="selected" value=""></option> 

私はこれを解決しようとしました。私がこれまで行っているもの:

  1. ダウン私のドロップ用RenderContent()のオーバーライドをデバッグ、私のセレクタ
  2. のためのRenderContents()のオーバーライドをデバッグします。
  3. HTML構文エラーをチェックしています。 (開始タグ、終了タグ)

私の2番目のコントロールの2つのIDを置くレンダリングまで、すべてがサーバー側で正常に動作しているようです。その原因がどのようにわかるのでしょうか?

+0

セレクタコントロールのコードを入力してください – techspider

+0

@techspider遅延のお詫び。私は最終的に解決策を見つけました。私は以下のコードを掲載しました。 –

答えて

0

私はついに解決策を見つけました!私はAddAttributesToRenderを(削除したら)

protected override void RenderContents(HtmlTextWriter output) 
    { 
     EnsureChildControls(); 
     AddAttributesToRender(); 

     string htmlOutput = getHtmlOutput(); 

     output.Write(htmlOutput); 
    } 

、重複したIDの問題は消えていた。問題は、私は以前に私のRenderContents()内AddAttributesToRender()を使用していたということでした。

関連する問題