Рейтинг:
1
Vincent Maverick Durano
Избавьтесь от тега привязки и используйте вместо него кнопку LinkButton. Или вы можете использовать ImageButton, так как вы отображаете изображения. Возможно,Вам также потребуется связать поля MainID и MainTopic в элементах управления HiddenField. Например:
<ItemTemplate>
<li>
<asp:ImageButton runat="server" ID="ImageButton1" ImageUrl='<%# "~/AppImages/Main/" + Eval("MainID") + ".jpg" %> ‘ OnClick="ImageButton1_Click"
/>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "MainID") %>' />
<asp:HiddenField ID="HiddenField2" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "MainTopic") %>' />
</li>
</ItemTemplate>
Затем в файле code behind вы можете установить значение сеанса, например:
protected void ImageButton1_Click(object sender, ImageClickEventArgs e){
ImageButton b = (ImageButton)sender;
RepeaterItem item = (RepeaterItem)b.NamingContainer;
//find the Hidden values
HiddenField mainID = (HiddenField)item.FindControl("HiddenField1");
HiddenField mainTopic = (HiddenField)item.FindControl("HiddenField2");
Session["MainID"] = mainTopic.Value;
//redirect to other page
Response.Redirect("~/mid_topics/mid_topics.aspx");
}
На странице назначения вы можете попробовать что-то вроде этого:
<a href="index.html">
<img src='<%# "../AppImages/Mid/"+ Session["MainID"].ToString() +"/" + Eval("MidID") + ".jpg" %>' width="96" height="96" alt="spa" title="spa" /></a>
PS: имейте в виду, что сеансы могут быть нулевыми, поэтому вы можете проверить наличие нулей перед привязкой вашего ретранслятора на целевой странице.
ХТХ!
alaa deego
Винсент Маверик Дюрано
не могли бы вы еще раз заглянуть в код
Vincent Maverick Durano
Я обновил решение. Пожалуйста, проверьте. Кстати, вы не проголосовали за мое решение?
ZurdoDev
ОП имеет это внутри ретранслятора. Крайне маловероятно, но возможно, что они хотят показывать одно и то же точное изображение снова и снова для каждой отдельной записи. Я серьезно сомневаюсь, что это то, что нужно ОП.
Vincent Maverick Durano
Предоставленный образец раствора находится внутри ретранслятора. Если вы заметили, что он находится внутри ItemTemplate.
ImageButton будет отображать строки изображений на основе источника. И так как он хотел использовать сеанс, единственный способ-установить его в коде позади и иметь перенаправление на стороне сервера тоже.
Я предполагаю,что это вы голосуете за решение. чёрт побери
ZurdoDev
"Если вы заметили, что это внутри ItemTemplate." - это именно моя точка зрения. Поскольку код находится внутри ItemTemplate, как я уже сказал, код будет "показывать одно и то же точное изображение снова и снова для каждой отдельной записи." Как вы думаете, ОП хочет получить одно и то же точное изображение для каждой отдельной записи? И если OP сделал это, то почему бы не закодировать его или не включить в sql вместо сеанса?
- Я предполагаю, что это ты голосуешь за решение." - Нет, я этого не делал, потому что именно об этом просил ОП. Я хочу сказать, что не думаю, что ОП действительно хочет того, о чем они просили.
И не беспокойтесь о том, что люди будут голосовать против. Это интернет, это произойдет.
Vincent Maverick Durano
-Именно это я и имею в виду. Поскольку код находится внутри ItemTemplate, как я уже сказал, код будет "показывать одно и то же точное изображение снова и снова для каждой отдельной записи."
Я так не думаю. На основе его кода:
Url_изображения=в'<%# “~/AppImages/Главная/" + оценки("MainID") + ".форматы jpg” %&ГТ; ‘
OP добавил MainID в качестве имени файла для изображений, поэтому он не статичен и не является одним и тем же точным изображением. Во время выполнения он будет генерировать строки изображений, таких как 1.jpg, 2.jpg N.jpg.
-Я хочу сказать, что не думаю, что ОП действительно хочет того, о чем они просили. Я бы не дал решения в первую очередь, если бы знал, что изображения статичны.
-И не беспокойся о том, что люди будут голосовать против. Это интернет, это произойдет", - согласился он. Это просто очень демотивирует, чтобы получить downvotes без каких-либо причин вообще. :(
ZurdoDev
Один из нас читает все это неправильно. ОП написал: "Я пытаюсь использовать сеанс для передачи значения eval, а не использовать строку запроса." Единственное, что OP получал от QueryString на целевой странице, - это MainID, так что нет, он не отличается для каждой записи. Это одно и то же.
Vincent Maverick Durano
"Единственное, что ОП получил от QueryString на целевой странице, - это MainID, так что нет, он не отличается для каждой записи. Это то же самое". - если ретранслятор не будет генерировать строки, то ваше предположение верно. :)
Насколько я понял, на странице origin будут отображаться различные изображения, основанные на MainID:
MainID 1
MainID 2
MainID 3
нажав на MainID 2, вы перенаправитесь на целевую страницу и, пройдя по значению MainID 2, отобразите соответствующую информацию на целевой странице. Думайте об этом как о мастер-детальной навигации.
Я бы не стал с тобой спорить. Давайте просто подождем обратной связи от ОП.
ZurdoDev
Мое извинение. Это я смотрел недостаточно внимательно. Я не заметил этой части url-адреса для изображения: "+ " / " + Eval ("MidID")+". jpg""
MainID использовался для выбора папки, а затем MidID использовался для отображения различных изображений. Еще раз приношу свои извинения.
Тем не менее, я все еще говорю, что использование сеанса для этого-не лучший способ сделать это; однако это может быть лучший способ для пользователя, основанный на чем-то, чего мы не знаем.
Спасибо за ваше терпение. ;)
Vincent Maverick Durano
- Еще раз приношу свои извинения." = не беспокоиться :)
"Тем не менее, я все еще говорю, что использование сеанса для этого не является способом сделать это;" - я знаю, ОП просто усложняет ситуацию или, возможно, у ОП есть причины запретить строки запросов (например, избегать раскрытия идентификатора и иметь чистый URL)
alaa deego
Большое спасибо :)
Vincent Maverick Durano
есть ли какая-то причина, по которой вы не отметили решение?