javascript не работает с asp. net для изменения простого текста метки - PullRequest
0 голосов
/ 29 февраля 2020

Я прошел через 4 часа сообщений. Я не могу заставить этот код js работать. Это последняя итерация, я перепробовал много комбинаций.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebFormRedisTest.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

<script type="text/javascript">

    function updateText(strData) {
        debugger;
        document.getElementById("<%=lbl.ClientID%>").innerHTML(strData);
    }

</script> 
</head>
<body>
    <form id="form1" runat="server">
     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Test_OnClientClick"/>

        <div>
        </div>
        <asp:Label ID="lbl" runat="server" Text="Label" ClientIDMode="Static"></asp:Label>
    </form>
</body>
</html>

public void Test_OnClientClick(object sender, EventArgs e)
        {
            Console.WriteLine("test");
            ScriptManager.RegisterStartupScript(this, this.GetType(), "updateText", "updateText('test');", true);
        }

1 Ответ

2 голосов
/ 29 февраля 2020

Я не думаю, что inner HTML () - это функция. Я думаю, что вы должны написать что-то вроде:

document.getElementById("<%=lbl.ClientID%>").innerHTML = strData;

Обновление:

Я запустил быстрый проект webforms, и вот как выглядит мой фрагмент тега скрипта:

<script type="text/javascript">

    function updateText(strData) {
        debugger;
        document.getElementById("lbl").innerHTML = strData;
    }

</script>

Бэкэнд такой же, как ваш.

public void Test_OnClientClick(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, this.GetType(), "updateText", "updateText('test');", true);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...