JavaScript getelementbyid( "gridview" ) 返回 null object



aspx part :

<body>
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/Models.asmx" />
        </Services>
    </asp:ScriptManager>
    <div>
        <div>
            <br />
            <div>
                <asp:GridView ID="Gridview1" clientID="Gridview1" runat="server"></asp:GridView>
                <br />
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            </div>
            &nbsp;
            <input id="Button2" type="button" value="Get Model" onclick="getModelByID()" /><br />
        </div>
    </div>
</form>

JavaScript 部分:

<script type="text/javascript" language="javascript">
function getModelByID() {
    _4_layer.Models.GetAllModelss(SuccesCallBack);
}
function parseJSON(data) {
    return window.JSON && window.JSON.parse ? window.JSON.parse(data) : (new Function("return " + data))();
}
function SuccesCallBack(result) {
    obj = parseJSON(result);
    var i = document.getElementById("TextBox1");     
    var j = document.getElementById("GridView1");
    j.DataSource = obj;
    j.Bind();
}

也使用

("<%= Gridview1.ClientID %>")

I 一切正常,但 j 在两个实现中都返回 null 对象。它是网络应用。一开始,Gridview1 是空的,因此它不会显示,并且没有创建 html 对象供它使用 Dom 对象。我能做什么?没有Jquery!

var j = document.getElementById("Gridview1");
j.DataSource = obj;

您似乎正在尝试使用不存在的方法和属性。

javascript中有bind(),但写成"bind",它用于函数。如果以前未找到数据源,则没有数据源。

顺便说一句,你为什么使用两个分号?

也许为了调试,将代码拆分为:

我已经通过手动输入行初始化page_load的 Gridview1 解决了这个问题,现在如何在不初始化网格的情况下做到这一点?

最新更新