Как поделиться целочисленной переменной C # с JavaScript - PullRequest
3 голосов
/ 16 декабря 2011

Я хочу поделиться с * JavaScript переменной currentTab, которая существует на стороне сервера C #. Вот мой код:

C #:

public int currentTab = 1;

protected void Page_Load(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(Type.GetType("System.String"), "addScript", "showTab(" + currentTab + ");", true);
}

JavaScript:

var currentTab = "<%=currentTab%>";

function showTab(index)
{
    currentTab = index;
    // Show tab at (index)
}

Я использовал этот подход, чтобы снова получить текущую вкладку в PostBack. Однако currentTab на C # остается 1 после PostBack. Как я могу решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 16 декабря 2011

Есть серверная сторона скрытое поле для хранения этой информации.

Вы можете получить доступ к полю через javascript и в качестве элемента управления на стороне сервера значение будет доступно на стороне сервера.

2 голосов
/ 16 декабря 2011

Вы можете записать индекс из функции javascript в скрытое поле, а затем прочитать его при обратной передаче.

В своем коде вы проверяете скрытое поле, если ваша страница находится в режиме обратной передачи. Вот так:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            currentTab = Int32.Parse(HiddenTabValue.Value);
        }

    }
1 голос
/ 16 декабря 2011

Вам необходимо использовать некоторый серверный элемент управления для отправки значения обратно на сервер (т.е. asp:HiddenField) или использовать строку запроса для установки там индекса вкладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...