尝试更新div InnerHtml,但没有任何反应

时间:2018-08-10 18:51:25

标签: javascript c# jquery asp.net

我的网页上有一个html表,该表显示从MySql数据库中提取的数据。当用户单击表行之一时,取决于行中的数据,页面上的另一个div应该更新以显示其他信息。问题是,当我尝试从我的C#代码隐藏页面更新div的内部html时,什么也没发生。开发控制台中没有错误,没有引发异常,什么都没有。为什么会发生这种情况,我该如何解决?我在做什么错了?

通过c#代码生成的HTML表数据:

<div id="app">
  <div id="card">
    <div class="content">content</div>
    <button class="btn" onclick="toggleModal()">Display Modal</button>
    <div id="modal">
      <div class="content">
        <div>Modal</div>
        <div>With same content</div>
        <div>(under the Overlay and also cropped)</div>
      </div>
    </div>
  </div>
  <div id="overlay" onclick="toggleModal()"></div>
</div>

jQuery / javascript代码捕获单击:

children

接收http请求:

protected void PopulateUsers(bool active)
{
        ArrayList userList = new ArrayList();
        Query query = new Query();
        StringBuilder userListHTML2 = new StringBuilder();
        string userListHTML = "" +
            "<table runat=\"server\" id=\"userListTable\" class=\"table table-striped table-bordered table-hover\">" +
                "<thead>" +
                    "<tr>" +
                        "<th>User ID</th>" +
                        "<th>Name</th>" +
                        "<th>E-Mail</th>" +
                        "<th>Phone</th>" +
                        "<th>IsActive</th>" +
                    "</tr>" +
                "</thead>" +
                "<tbody>";
        string userListHTML3 = "" +
                "</tbody>" +
            "</table>";
        switch (active)
        {
            case true:
                userList = query.GetUserList(true);
                break;
            case false:
                userList = query.GetUserList(false);
                break;
        }
        foreach (User user in userList)
        {
            userListHTML2.Append(string.Format(@"
            <tr>
                <td>{0}</td>
                <td>{1}</td>
                <td>{2}</td>
                <td>{3}</td>
                <td>{4}</td>
            </tr>", user.userID, user.displayName, user.email, user.phone, user.isActive));
        }
        userListDiv.InnerHtml = userListHTML + userListHTML2 + userListHTML3;      
    }

应该更新div内部html的方法:

function viewUserSpecifics(id) {
    var data = id;
    var xmlHttpRequest;
    xmlHttpRequest = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("testing.XMLHTTP");
    if (xmlHttpRequest == null) {
        alert("ajax not supported");
        return null;
    }
    xmlHttpRequest.open("GET", "ManagerPopup.aspx?ID=" + data, true);
    xmlHttpRequest.send(null);
    //document.getElementById('userDataDiv').innerHTML.
}

$(document).ready(function () {
        $('#userListTable tbody').on('click', 'tr', function () {
            var tableData = $(this).children("td").map(function () {
                return $(this).text();
            }).get();

            //$("#< %= userIDHidden.ClientID %>").val($.trim(tableData[0]));
            //alert($.trim(tableData[0]));
            viewUserSpecifics($.trim(tableData[0]));
            return false;
        });
});

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

要更新html内容,您应该将C#路由的响应发送回客户端,并使用带有接收到的数据的jQuery更新html部分