ASP.NET MVC: Цель AJAX ActionLink-HTML-атрибут

Вот решение для вашего первоначального вопроса . Попытка помочь была бы бесполезной, если у вас есть изменяющийся Вопрос и вы продолжаете изменять Вопрос

position: sticky не работает с элементами таблицы. Так как top и bottom не работают в элементах таблицы, мы можем сделать только высоту строки незакрепленного элемента td, чтобы sticky td не перекрывались над non-sticky td [ 1121]

Sticky How can I make this sticky?
Column 1 Column 2 Column 3 Column 4 Column 5 Column 7 Column 8 Column 9 Column 10

Добавьте class left для липкого тд, который остается на левой стороне. Аналогичным образом управляйте значением left в других td. Кроме того, добавьте немного class для нелипкого td как tableBody в этом примере:

div {
  width: 300px;
  overflow: scroll;
}
.sticky {
  position: fixed;
  left: 50px;
  background: white;
}
.left{
  left:0;
}
tr.tableBody
{
   line-height:50px;
}

Наконец добавьте желаемый CSS.

Пожалуйста, проверьте эту ДЕМО-скрипку здесь

5
задан Fabian Steeg 28 January 2009 в 19:08
поделиться

3 ответа

Поведение по умолчанию для помощников Ajax не будет поддерживать это. Можно, однако, создать пользовательский обработчик JavaScript, который выполняется, когда запрос Ajax возвращается, и затем используйте это для введения значения в атрибут

Создайте общий файл JavaScript (загрузите его на странице Master, например), и добавьте эту функцию:

// Creates an Ajax OnComplete handler that will inject 
///the contents into the specified attribute, rather than the InnerHtml
function createAttributeInjector(attributeName) {
    return function(ajaxContext) {
        if(ajaxContext.get_updateTarget() !== null) {
            ajaxContext.get_updateTarget()[attributeName] = ajaxContext.get_data();
        }
        // IMPORTANT: Suppress the default behavior!
        return false;
    }
}

Затем при создании ссылки Ajax:

Ajax.ActionLink("Change IMG Source", "actionChange", new AjaxOptions() {
    UpdateTargetId="CHANGE-MY-SRC", 
    OnCompleted="createAttributeInjector('src')"
}

Отказ от ответственности: Я не смог дать этому тест, но я сделал подобные вещи с помощниками Ajax. Сообщение в комментариях для моего ответа, если у Вас есть проблемы и я рад помочь! Если это работает, сообщите мне в комментариях также!

Если у Вас есть источник (можно получить его на CodePlex), можно проверить файл AjaxContext.cs в проекте MicrosoftMvcAjaxScript для полного списка свойств, к которым можно получить доступ от обработчика OnCompleted

8
ответ дан 13 December 2019 в 22:18
поделиться

Я не уверен точно, что Вы имеете в виду, но можно обеспечить ряд HTML-атрибутов некоторые версии расширения ActionLink.

Ajax.ActionLink( string linkText,
                 string action,
                 object routeValues,
                 AjaxOptions ajaxOptions,
                 object htmlAttributes )

Пример:

<%= Ajax.ActionLink( "add",
                     "AddThing",
                     new { id = ViewData.Model.ID },
                     new AjaxOptions { Confirm = "Are you sure?",
                                       UpdateTargetId = "thingList"
                                     },
                     new { title = "Add a thing to the database." } ); %>
2
ответ дан 13 December 2019 в 22:18
поделиться

Я думаю, что гораздо проще, вы могли бы использовать URL .Action (действие, которое вы устанавливаете то, которое возвращает нужную строку, но вместо возврата вы используете Response.Write (...).

Или, что еще проще, вы используете src = "<% = ViewData [" src "]%>" в вашем теге!

Я вижу, у вас уже есть решение, но это может сэкономить вам время в следующий раз ..

0
ответ дан 13 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: