2017-04-25 16 views
0

後でjsスクリプトで埋め込まれるdivを生成するASP Repeaterがあります(わかりやすくするためにスクリプトは棒グラフを描画します)。私はそれらのdivのIDが必要なので、jsスクリプトがそれらを対象とすることができます。スクリプトはコードの背後から開始されます。ASP Repeater - 生成された要素IDを取得

リピータはList<List<Object>> Recordsaggregatedにバインドされています。 List<Object>には、私の棒グラフの生データが含まれています。 loadGraphは、引数でのdiv IDを取る必要があります

foreach (var recordlist in Recordaggregated) 
{  
    Page.ClientScript.RegisterStartupScript(this.GetType(), "graphscript", "loadGraph();", true); 
} 

List<List<Object>>(引数で適切なdiv要素を持つのJS関数のように1つのコール)の背後にあるコードで

<asp:Repeater runat="server" ID="graphdivs"> 
    <ItemTemplate>  
     <div id="DivChart<%# Container.ItemIndex + 1%>" style="width: 600px; height: 250px;"></div> 
    </ItemTemplate> 
</asp:Repeater> 

に要素ごとに1つのチャートがあるはずですここでは、リピータによって生成されたdivのIDを取得する方法と、スクリプトの前回の呼び出しで使用されなかったdivを取得する方法についてはわかりません。

+0

'graphdivs.ClientID'はあなたが探しているものです。 – VDWWD

+0

ちょっと丁寧に説明できますか? ClientIDは中継器自体のIDですか? –

+0

申し訳ありませんが、間違いました。 Repeaterコントロールは、DOM内にClientIDを持っていません。したがって、 'Repeater'を' div 'であなた自身の 'ID'で囲みます。リピーター内のもの(DivChart0、DivChart1)はあなた自身の名前をつけ、aspnetで名前を変更しません – VDWWD

答えて

0

これを試してください。

<asp:Repeater runat="server" ID="graphdivs" ClientIDMode="Static"> 
    <ItemTemplate>  
    <div id="DivChart<%# Container.ItemIndex + 1%>" style="width: 600px; height: 250px;"></div> 
    </ItemTemplate> 
</asp:Repeater> 
関連する問題