【问题标题】:Load new page on postback在回发时加载新页面
【发布时间】:2010-08-19 15:11:49
【问题描述】:

我有一个母版页,该页的左侧有一个用户控件,并带有一个下拉菜单。当用户从下拉列表中选择一个值时,我需要加载一个不同的 aspx 页面。新页面的左侧有一个类似(但不一样)的用户控件,右侧有不同的内容。我怎样才能做到这一点?此外,当新页面加载时,下拉菜单必须记住它的选择。

【问题讨论】:

  • 这只是 asp.net 还是 asp.net mvc?

标签: c# asp.net


【解决方案1】:

不确定是否要使用 Javascript。如果你这样做了,那么试试这个 JQuery 方法。

// 仅在页面完全加载后加载。

$(function()
{
  // Assume that the dropdownlist's id is TheList
  $('#TheList').change(function(e){
    var target = $(this).val();
    if(target.length > 0)
    {
       // go to new URL
       window.location.replace("http://www.locationurl.com/"+target);
    }
  });
});

【讨论】:

  • 这并没有回答关于在下一页设置下拉菜单值的部分问题,而是很好的客户端答案。
  • 这个解决方案更灵活,因为它可以在回调中工作
【解决方案2】:

在下拉列表中将 AutoPostback 设置为 true。处理OnSelectedChanged,然后将选定的值传递到 Response.Redirect 上的下一页:

Response.Redirect(String.Format("NextPage.aspx?selected={0}", MyDropDownList.SelectedValue));

然后在您的新页面中,检查该查询参数并适当设置下拉列表的 SelectedValue。

【讨论】:

  • 由于回发不是很优雅,但我看不出有什么办法。
  • 尽可能优雅,尽我所能。
  • 这是一个很好的解决方案,但在回调期间不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多