2016-10-13 4 views
4

Я вижу, что было много вопросов о получении ClientID в ASP.NET, но все вопросы, которые я просматривал, не помогли для моего сценария. Я немного новичок в ASP.NET и имею проблемы с получением ClientID DataGrid в JavaScript.Значение идентификатора клиента DataGrid ASP.NET, возвращающее значение null

Надеюсь, что кто-то в этом форуме поможет мне найти способ.

На моей странице ASPX, я получил DataGrid:

<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 в предупреждающем сообщении.

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

, но когда я использую ASP.NET ClientID, я получаю исключение нулевого значения, поскольку он бросает нулевое значение.

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

Может ли кто-нибудь мне помочь в этом отношении.

Заранее спасибо.

+0

увидеть, что фактически вывести на страницу в этой точке '<% = dgItems.ClientID%>'. Возможно, вы назовете это раньше, а идентификатор еще не создан ... – Aristos

+0

_ct100_PageContent_dgItems_ - это идентификатор, который я получаю на источнике страницы в браузере, я использую как консоль браузера Chrome, так и файл javascript, чтобы узнать, возвращается ли он что-нибудь. но значение null было единственным значением, которое оно предоставляет в данный момент. – David

+0

что-то вы делаете неправильно здесь, и с этим кодом мы не можем его найти. Если у вас, возможно, есть он онлайн, мы можем это увидеть, но вам нужно отладить его и найти свою ошибку ... – Aristos

ответ

1

Если document.getElementById('<%=dgItems.ClientID %>') находится в отдельном JS-файле, который находится в отдельном файле aspx, то механизм ASP.Net не сможет разрешить ссылку. Он работает только для скриптов, встроенных в страницу .aspx.

Решение, однако, если вы не дублируя DataGrid на странице, то вы могли бы дать ему статический идентификатор, используя ClientIDMode="static":

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

и затем ссылаться на него с

document.getElementById('dgItems') 
0

Вместо

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

.. вы могли бы дать DataGrid класс CSS, например, «dgrid» и использовать селектор класса JQuery, чтобы найти его на стороне клиента?

Смежные вопросы