Почему при использовании Bootstrap некоторые из моих элементов случайным образом не рушатся?

У меня есть несколько сворачивающихся блоков на моем сайте веб-форм. Я использую Bootstrap, чтобы свернуть их, например:

<div class="span<%# CurrentBlock.Span > 0 ? CurrentBlock.Span.ToString() : "12" %> info-link-header info-link-header-title expandable-link-heading" data-toggle="collapse" data-target="#<%# ContentId %>" style="position: relative;">
    <!--some content-->
<div class="expandable-container collapse" id="<%# ContentId %>"><!--some more content--></div>

Вот код для этого файла:

    protected void Page_Load(object sender, EventArgs e)
    {
        this.DataBind();
        //some other code
    }

Поскольку вызывается DataBind(), я предполагаю, что кодовый блок ‹%# ContentId %> должен получить правильное значение. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю на div, который хочу развернуть, атрибут класса не может сгенерировать «свернуть» — он просто показывает «свернуть», и поэтому мой контент отображается, когда я проверяю его в инструментах Chrome Dev, но его не видно. Добавление «свернуть» в инструменты Chrome Dev решает проблему, но, конечно, мне нужно, чтобы это происходило автоматически. Что еще более сбивает с толку, так это то, что когда я строю это локально, мои блоки каждый раз правильно расширяются/схлопываются; «collapse in» добавляется, когда это необходимо, и возвращается к «collapse», когда это необходимо. Когда я публикую на нашем сервере разработки, случайным образом не удается сгенерировать «свернуть». Как я могу это исправить? Спасибо!


person SammyPayne    schedule 08.07.2016    source источник


Ответы (1)


Я только что ответил на этот вопрос. Проблема заключалась в том, что мой div, содержащий атрибут data-target, использовал свойство C# для получения уникального значения идентификатора. Это значение было создано путем генерации миллисекунды в DateTime.Now и использования ее в качестве значения атрибута id в сворачивающемся div и значения data-target в верхнем div. Я предполагаю, что на более быстрой машине, чем моя собственная, например на сервере разработки, код работал достаточно быстро, чтобы получить одинаковое значение миллисекунд для 2 или 3 элементов div на странице, что создало идентичные значения в атрибутах id. Идентичные значения в атрибутах Id нарушили DOM и скрыли мой контент.

Решение. Я создал объект GUID для заполнения свойства «ContentId», что создало уникальные значения для атрибута id и сохранило DOM без изменений.

person SammyPayne    schedule 25.07.2016