2016-10-13 25 views
4

ASP.NETでClientIDを取得することについて多くの質問がありましたが、私が見たすべての質問は私のシナリオでは役に立たないことがわかりました。私はASP.NETに少し新しく、JavaScriptでDataGridのClientIDを取得する際に問題があります。ASP.NET DataGrid ClientIDの値がnullを返す

このフォーラムの誰かが私に方法を見つけるのに役立つことを願っています。警告メッセージで

<div class="tblgrid" id="divItems"> 
    <asp:DataGrid ID="dgItems" runat="server" AutoGenerateColumns="False" GridLines="None"> 
    <Columns> 
     <asp:BoundColumn HeaderText="EmpId" DataField="EmpId"> 
     </asp:BoundColumn> 
     <asp:BoundColumn HeaderText="F_Name" DataField="F_Name"> 
     </asp:BoundColumn> 
     <asp:BoundColumn HeaderText="L_Name" DataField="L_Name"> 
     </asp:BoundColumn> 
     <asp:BoundColumn DataField="City" HeaderText="City"> 
     </asp:BoundColumn> 
     ..... 
    </Columns> 

私はJavaScriptで以下の使用している、それが戻っている適切なテーブルインナーHTML:私のaspxページで

は、私はデータグリッドを得ました。

alert(document.getElementById('ct100_PageContent_dgItems').innerHTML); 

しかし、私がASP.NET ClientIDを使用しているとき、null値をスローしているので、null値の例外が発生しています。

alert(document.getElementById('<%=dgItems.ClientID %>').innerHTML); 

誰でもこの点について私を助けることができます。

ありがとうございます。

+0

何を参照してそれを参照しますこの点のページ上で実際にレンダリングします。 '<%= dgItems.ClientID%>'。おそらくあなたは早くそれを呼び出すと、IDはまだ作られていません... – Aristos

+0

_ct100_PageContent_dgItems_は私がブラウザのページソースに取得しているIDです、私はクロムブラウザのコンソールとjavascriptファイルを使って、何でも現時点ではnullが唯一の値でした。 – David

+0

ここであなたが間違っているコードを見つけられません。もしあなたがそれをオンラインにしたら、それを見ることができますが、それをデバッグしてバグを見つける必要があります... – Aristos

答えて

1

document.getElementById('<%=dgItems.ClientID %>') がaspxページとは別のJSファイルにある場合、ASP.Netエンジンは参照を解決できません。これは、.aspxページ内に埋め込まれたスクリプトでのみ機能します。ページ上のDataGridを複製していない場合

ソリューションは、しかし、あなたはClientIDMode="static"を使用してそれを静的なIDを与える可能性がある。その後、

<asp:DataGrid ID="dgItems" ClientIDMode="static" runat="server" AutoGenerateColumns="False" GridLines="None"> 

document.getElementById('dgItems') 
0

代わりの

​​

..あなたは「dgrid」は、例えば、データグリッドにCSSクラスを与え、それをクライアント側を見つけるために、jQueryのクラスセレクタを使用することができますか?

関連する問題