Я создал javascript, который проверяет, нет ли в сетке строк, он вставит ячейку с кнопкой ввода, проблема в том, что когда я пытаюсь извлечь сетку с помощью document.getElementByID (), возвращаемое значение равно нулю, потому что элементы управления еще не загружены на страницу. Так есть ли событие, которое будет взаимодействовать с элементами управления, потому что я не хочу вызывать его со страницы, я бы хотел, чтобы это происходило автоматически?
Edit:
Я попробовал window.onload, и он не сработал, странно то, что когда я его отслеживал, сначала запускается загрузка страницы и заполняется сетка, а затем запускается функция javascript.
Вот код:
<script language="javascript" type="text/javascript">
window.onload = gridAddButton();
function gridAddButton() {
var gridTable = document.getElementById('<%=GridView_Users.ClientID%>');
gridTableRowsLength = gridTable.rows.length;
if (gridTableRowsLength == 0) {
var addButton = document.createElement('input');
addButton.id = 'tempButtonAdd';
gridTable.rows[1].cells[4].appendChild(addButton);
}
}
<asp:GridView ID="GridView_Users" runat="server" DataKeyNames="ID" Width="100%"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="UserName" HeaderText="UserName" />
<asp:BoundField DataField="Email" HeaderText="Email" />
<asp:BoundField DataField="Company" HeaderText="Company" />
<asp:BoundField DataField="Address" HeaderText="Address" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton_Edit" runat="server"
onclick="LinkButton_Edit_Click">Edit</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton_Delete" runat="server"
onclick="LinkButton_Delete_Click">Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>