C# 所有控件发布到页面后的Javascript事件?

C# 所有控件发布到页面后的Javascript事件?,c#,javascript,asp.net,visual-studio-2010,C#,Javascript,Asp.net,Visual Studio 2010,我创建了一个javascript来检查网格是否没有行,它将插入一个带有输入按钮的单元格,问题是当我试图通过document.getElementByID()获取网格时,返回的值为null,因为控件尚未加载到页面。那么,是否有一个事件会与控件交互,因为我不想从页面调用它,我希望这是自动的 编辑: 我尝试过window.onload,但它不起作用,wierd的问题是,当我跟踪它时,页面加载首先运行,网格被填充,然后javascript函数启动 代码如下: <script language="j

我创建了一个javascript来检查网格是否没有行,它将插入一个带有输入按钮的单元格,问题是当我试图通过document.getElementByID()获取网格时,返回的值为null,因为控件尚未加载到页面。那么,是否有一个事件会与控件交互,因为我不想从页面调用它,我希望这是自动的

编辑: 我尝试过window.onload,但它不起作用,wierd的问题是,当我跟踪它时,页面加载首先运行,网格被填充,然后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);
    }
}

window.onload=gridAddButton();
函数gridAddButton(){
var gridTable=document.getElementById(“”);
gridTableRowsLength=gridTable.rows.length;
if(gridTableRowsLength==0){
var addButton=document.createElement('input');
addButton.id='tempbuttonad';
gridTable.rows[1]。单元格[4]。appendChild(addButton);
}
}


编辑
删去

您应该使用DOM就绪事件。您可以使用jQuery这样的库来完成这项工作,如下所示:

$(document).ready(function(){
    // Here, the grid is made into DOM, so you can access it.
});

但是,如果您仍然有问题,那么您应该检查其他原因。例如,Microsoft ASP.NET控件倾向于在运行时更改
id
属性,因此您可能需要在页面中使用
clientdmode='Static'
,以确保可以使用
document.getElementById()获取元素

加载页面后是否运行代码?尝试使用window.onload或其他类似事件。是的,我正在使用window.onload,奇怪的是,我的网格先被填充,然后javascript函数被激发。然后在网格上使用另一个事件,在填充/加载之后激发它。这样行吗,你能解释一下吗?你使用的是什么类型的网格?发布您的实际代码…阅读注释,他已经在使用这个了,问题是他有一个异步调用来填充网格。实际上,所有这些代码都可以在文档就绪的情况下正常工作。onload并不意味着所有DOM元素都已加载并准备好使用。这里的问题是,是否需要jQuery,或者像这里这样的变通方法
$(document).ready(function(){
    // Here, the grid is made into DOM, so you can access it.
});