j_u_sankar Ответов: 1

Как передать значение индекса в <%=


JobMatrix-это список в коде позади. Как передать значение индекса на странице asp?

<pre>var jobMatrixOpenning = '<%=JobMatrix['+ index +'].NumberOfOpenings %>';


Он кидает ошибку :
error CS1012: Too many characters in character literal


Кто-нибудь может помочь?

Что я уже пробовал:

Я попытался передать значение индекса [int] между <%= %>

<pre>        $("#<%= JobMatrixGrid.ClientID%>").find("tr").each(function (index) {
            $(this).find("td").each(function () {
                $(this).find("input[id*=OpeningsInputText]").blur(function () {
                    alert("Hello" + index);
                   var jobMatrixOpenning = '<%=JobMatrix['+ index +'].NumberOfOpenings %>';
                    alter(jobMatrixOpenning);
                });
            });
        });

1 Ответов

Рейтинг:
1

F-ES Sitecore

Ваш серверный код в блоках <% %> выполняется на сервере, а выходные данные затем передаются клиенту для запуска в браузере. Таким образом, вы не можете использовать переменные javascript в коде сервера, потому что javascript еще даже не существует.

Самый простой способ справиться с этим-создать массив javascript на клиенте, который затем можно будет использовать в своем js-коде.

public class Job
{
    public int NumberOfOpenings { get; set; }
}


public Job[] JobMatrix { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    JobMatrix = new Job[] { new Job { NumberOfOpenings = 1 }, new Job { NumberOfOpenings = 2 } };
}

protected string GetJobMatrix()
{
    JavaScriptSerializer s = new JavaScriptSerializer();
    return s.Serialize(JobMatrix);
}


Страница

<script>
    var matrix = <%=GetJobMatrix() %>;
    for (var i = 0; i < matrix.length; i++) {
        alert(matrix[i].NumberOfOpenings);
    }
</script>