Вот решение для вашего первоначального вопроса . Попытка помочь была бы бесполезной, если у вас есть изменяющийся Вопрос и вы продолжаете изменять Вопрос
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
.
Поведение по умолчанию для помощников 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
Я не уверен точно, что Вы имеете в виду, но можно обеспечить ряд 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." } ); %>
Я думаю, что гораздо проще, вы могли бы использовать URL .Action (действие, которое вы устанавливаете то, которое возвращает нужную строку, но вместо возврата вы используете Response.Write (...).
Или, что еще проще, вы используете src = "<% = ViewData [" src "]%>" в вашем теге!
Я вижу, у вас уже есть решение, но это может сэкономить вам время в следующий раз ..