Я уверен, что есть несколько способов решить эту проблему, в значительной степени зависящих от факторов в других местах на вашей странице и от вашего приложения, которые могут внести вклад в общую функциональность и пользовательский опыт.Но с точки зрения предложений, как насчет этого:
Вместо того, чтобы пытаться сохранить состояние выбранного изображения в элементе управления изображением, выделите его в другой элемент управления.Используйте стандартный img
HTML-элемент для отображения изображений для пользователя на клиентской стороне и сохраняйте его исключительно для удобства пользователя.Не используйте его как часть формы.
Затем создайте отдельный элемент управления (скрытое поле, текстовое поле, стилизованное для отображения и т. Д.) И укажите путь к файлу изображения.в качестве значения этого элемента управления в вашем JavaScript.Примерно так:
$('.image').click(function () {
var imgPath = $(this).attr('src');
var imgName = imgPath.substring(0, imgPath.length - 4);
var imgAlt = $(this).attr('alt');
$('#showImage').attr('src', imgName + '-large.jpg').attr('alt', imgAlt);
$('#<%= imagePath.ClientID %>').val(imgName + '-large.jpg');
});
Обратите внимание, что src
и alt
устанавливаются для стандартного тега img
(с id showImage
в данном случае) и значения, которое серверсторонний код заботится о том, чтобы полностью установить его на другой элемент управления (в данном случае с идентификатором на стороне сервера imagePath
).
Сейчас у меня нет возможности проверить это под рукой, но это предложение,Возможно, это может не сработать, и если это так, дайте мне знать, чтобы я мог изменить / удалить этот ответ.Но кажется, что это имеет смысл, учитывая, что такие элементы, как TextBox
элементы управления ASP.NET имеют значение , означающее для изменения их значений на стороне клиента.(Действительно, в этом случае вам может повезти больше с стилем TextBox
, который не будет отображаться, чем со скрытым полем.)