изменить изображение при обратной передаче - PullRequest
1 голос
/ 17 августа 2010

Итак, вот сценарий :

У меня есть страница на моем веб-сайте asp.net c #, которая отображает данные динамически после получения запроса из строк запроса.Например: Бренд = HTC и модель = Wildfire

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

Для отображения сделок я использую gridview, который получает свой источник данных из кэша.Кроме того, я обеспечил фильтрацию строк по выпадающим спискам в заголовках каждого столбца таблицы сетки.

Все это внутри панели обновления.

Все работает нормально.

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

Вещи, которые я пробовал: Я сохраняю имя сети в кэше (который также необходим для фильтрации вида сетки) всякий раз, когда нажимается кнопка изображения.Затем, при загрузке страницы, я делаю это:

if(ScriptManager1.IsInAsyncPostBack)
{
    Image img = new Image();
    img.ImageUrl = "images/" + Cache["network"] + "_logo.jpg";
    nw_image.Controls.Clear();
    nw_image.Controls.Add(img);
}

, где nw_image - это табличная ячейка, которую я использую для отображения выбранного логотипа сети.а также я сохранил сетевые логотипы в папке изображений как: 'network'_logo.jpg Например: 3_logo.jpg, orange_logo.jpg

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

Пожалуйста, помогите!Спасибо!

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Вместо использования динамических элементов управления (т. Е. Создания элемента управления Image вручную на обратной передаче) было бы намного проще просто определить элемент управления Image в разметке страницы и установить по умолчанию его Visible свойство до false. Затем при обратной передаче установите для свойства ImageUrl правильный URL-адрес, а для свойства Visible - true.

.

Кроме того, убедитесь, что ваша ячейка таблицы nw_image находится внутри вашей UpdatePanel, и у вас либо ChildrenAsTriggers установлено на true на панели обновления (это значение по умолчанию), либо вы указали AsyncPostbackTrigger для Click событие ImageButton.

0 голосов
/ 17 августа 2010

Наконец-то у меня все заработало.

Теперь я поместил статическое изображение без каких-либо свойств, кроме id = "net_img", runat = "server" и EnableViewState = "true".

Ивместо того, чтобы брать имя сети из кэша, я меняю изображение в событии click кнопки ImageButton в соответствии с кнопкой Imagebutton, которую нажимают.

И это работает сейчас!:)

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