Получить активный индекс панели аккордеона jquery от asp.net на стороне сервера? - PullRequest
2 голосов
/ 27 января 2010

Как я могу получить активный индекс на панели аккордеона jquery при нажатии кнопки? Я хочу, чтобы при нажатии кнопки на панели 3, например, я хотел сохранить это значение, а когда страница была перезагружена, я хочу, чтобы панель 3 оставалась открытой.

У меня изначально было это в моем щелчке на стороне сервера, и когда я жестко кодирую значение для paneIndex, оно работает нормально, но, очевидно, я не хочу этого делать, я хочу получить индекс по щелчку и передать его к сценарию.

string script = "<script type=\"text/javascript\">var paneIndex = " + 3 + "</script>";

if(!ClientScript.IsStartupScriptRegistered("JSScript"))
    ClientScript.RegisterStartupScript(this.GetType(),"JSScript", script);

Ответы [ 3 ]

1 голос
/ 27 января 2010

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

0 голосов
/ 02 февраля 2010

Также возможно использование плагина jquery.cookie и сохранение индекса активной панели в файле cookie. Таким образом, все на самом деле происходит на стороне клиента. Я не знаю, может ли это быть правильным ответом, просто выкину его здесь для полноты картины: D

0 голосов
/ 27 января 2010

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

Что касается циклического возврата активного индекса обратно в HTML-код, возвращаемый с сервера, то у вас все в порядке. Очевидно, что вместо жестко заданного значения 3 вы должны ввести значение из скрытого ввода.

$("#accordion").accordion({
    active:1,
    change: function(event, ui) {
        var activeIndex = $("#accordion").accordion('option','active');
        $("myHiddenInputId").val(activeIndex);
        //alert(activeIndex);
    }
});

Со стороны сервера вы можете получить доступ к значению и отправить его обратно на страницу аналогично тому, как вы разместили в вопросе:

string activeIndex = Request.Form["myHiddenInputName"];
string script = string.Format(@"<script type=""text/javascript"">var paneIndex = {0};</script>", activeIndex);

Это должно сделать это.

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