При щелчке RadImageButton2 страница отправляется обратно на сервер для обработки. Этот процесс называется ASP. NET механизмом обратной передачи, и IsPostback обычно используется в событии page_load для определения, генерируется ли страница из-за обратной передачи, запрошенной элементом управления на странице, или загружается страница для первого время. Это важно для случая, когда значения элементов управления устанавливаются программно и не должны перезаписываться при отправке страницы назад.
См. Этот фрагмент:
protected void Page_Load(object sender, EventArgs e)
{
hidYear.Value = "";
hidTrack.Value = "";
hidEvent.Value = "";
hidSession.Value = "";
}
protected void Init_Click(object sender, EventArgs e)
{
hidYear.Value = "2020";
hidTrack.Value = "1";
hidEvent.Value = "2";
hidSession.Value = "0123456789";
}
protected void btnConfirm_Click(object sender, EventArgs e)
{
string url = string.Format("Beta.aspx/?year={0}&track={1}&event={2}&car=27&session{3}",
hidYear.Value, hidTrack.Value, hidEvent.Value, hidSession.Value);
Response.Redirect(url);
}
Все будет работать хорошо, но значения в редиректе всегда будут "", потому что Page_Load () вызывается при каждой обратной передаче. Однако со следующим небольшим изменением значения перенаправления не будут изменены и заполнены до состояния перед отправкой формы:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
hidYear.Value = "";
hidTrack.Value = "";
hidEvent.Value = "";
hidSession.Value = "";
}
}
Обратите внимание, что фактические значения элементов управления можно найти, посмотрев на источник страницы
Итог здесь: скрытые поля должны иметь значения при взгляде на источник перед нажатием на RadImageButton2, и Page_Load () не должен вызывать любой код, который изменяется эти значения, или должны проверить для if (!IsPostBack)
.
PS
Простое перенаправление не требует кода сервера и может быть выполнено с помощью клиентского скрипта, например:
<script type="text/javascript">
function PageRedirect() {
window.location.href = "Beta.aspx/?year="
+ document.getElementById('<%=hidYear.ClientID%>').value
+ "&track=" + document.getElementById('<%=hidTrack.ClientID%>').value
+ "&event=" + document.getElementById('<%=hidEvent.ClientID%>').value
+ "&car=27&session" + document.getElementById('<%=hidSession.ClientID%>').value;
}
</script>
<asp:Button ID="Button1" runat="server" Text="Client Redirect"
OnClientClick="PageRedirect();return false;" />