我在页面上有一个单选按钮列表,用于配置产品。当页面第一次加载时,显示第一个选项列表。您选择其中一个然后单击“下一步”按钮,页面回发并显示第2步的新单选按钮列表。现在,如果我单击“上一步”按钮,我可以轻松获取以前显示的选项列表但由于某种原因,我无法选择其中一个单选按钮。我可以很容易地带回我需要的价值。在制作单选按钮列表后,我有一个步骤,只是说radiobuttonlist.selected =“somevalue”取决于用户在第一次完成第一步时选择的内容。
当我调试时,我看到值正确并正在应用。但是当显示页面时,没有选择单选按钮。
我注意到当我在调试下面的步骤时点击我的“上一页”按钮时:
page.load处理程序运行,我的if not page.ispostback块中的代码没有运行,这是正确的。 然后我点击的按钮的句柄运行。 但之后,page.load处理程序再次运行,但这次if not page.ispostback块中的代码运行...
是正常的吗? page.onload块在回发时运行两次?我认为这可能与我的价值未被应用的原因有关。
答案 0 :(得分:1)
听起来你正在导致重定向发生。您是不是偶然做一个Response.Redirect以“回到”原始页面?这将导致您描述的功能。您将首先从“上一步”按钮获取Postback以离开页面,然后在页面重新加载时获得新的请求(IsPostback = false)。
答案 1 :(得分:0)
尝试在页面中设置AutoEventWireup = False
。
答案 2 :(得分:0)
我有一个response.redirect我正在使用但我删除了它。我想我可以做一个彻底的检查,以确保我没有在任何地方有另一个。我也会尝试使用autoeventwireup属性。
答案 3 :(得分:0)
好吧,看起来autoevenwriteup属性在我开始之前已经设置为false。所以我不认为那是它。
我没有看到任何其他重定向发生在任何地方......我猜搜索仍在继续。
答案 4 :(得分:0)
您是否尝试在页面的预渲染阶段而不是Page_Load中设置所选值?
答案 5 :(得分:0)
尝试这样做
yourRadioButonList.Items.FindByValue(YourSavedValue).Selected = true;
答案 6 :(得分:0)
我有同样的问题,就像Thunder3提到的那样,我做了一个重定向回到页面,并在Page_Load上调用一个方法来设置RadioButtonList选择的值。但是所选的值未应用于RadioButtonList。
我通过调用Page_Init上的方法解决了这个问题。
答案 7 :(得分:0)
可能的原因之一,也是我最近遇到的原因之一是因为radiobuttonlist根据值而不是ID来区分项目,因此如果存在重复值,则会发现此问题。
以下链接提供详细说明。