0

我在用于配置产品的页面上有一个单选按钮列表。当页面第一次加载时,会显示第一个选项列表。您选择其中一个,然后单击“下一步”按钮,页面回发并显示第 2 步的新单选按钮列表。现在,如果我单击“上一步”按钮,我可以轻松获取要显示的上一个选项列表但由于某种原因,我无法选择其中一个单选按钮。我可以轻松带回我需要的价值。在制作单选按钮列表后,我有一个步骤,它只是说radiobuttonlist.selected =“somevalue”,具体取决于用户第一次完成第一步时选择的任何内容。

当我调试时,我看到该值是正确的并且正在应用中。但是当页面显示时,单选按钮没有被选中。

我注意到,当我在调试时单击“上一个”按钮时,会发生以下步骤:

page.load 处理程序运行并且我的 if not page.ispostback 块中的代码不运行,这是正确的。然后我刚刚单击的按钮的句柄开始运行。但之后 page.load 处理程序再次运行,但这次 if not page.ispostback 块中的代码确实运行...

这正常吗?让 page.onload 块在回发时像这样运行两次?我认为这可能与为什么我的价值没有被应用有关。

4

8 回答 8

1

听起来您正在导致重定向发生。您不是偶然执行 Response.Redirect 以“返回”原始页面吗?这将导致您描述的功能。您将首先从“上一个”按钮获得回发以离开页面,然后在页面重新加载时获得一个新的请求 (IsPostback = false)。

于 2008-09-12T20:05:47.317 回答
0

Try to do this

yourRadioButonList.Items.FindByValue(YourSavedValue).Selected = true;
于 2009-01-05T15:22:18.020 回答
0

尝试AutoEventWireup = False在页面中设置。

于 2008-09-12T20:04:45.527 回答
0

我确实有一个我正在使用的 response.redirect,但我删除了它。我想我可以做一个彻底的检查,以确保我在任何地方都没有另一个。我也会尝试 autoeventwireup 属性。

于 2008-09-12T20:08:21.570 回答
0

好吧,看起来 autoevenwriteup 属性在我开始之前就已经设置为 false。所以我不认为是这样。

我没有看到任何其他重定向发生在任何地方......我想搜索仍在继续。

于 2008-09-12T21:24:21.903 回答
0

您是否尝试过在页面的预渲染阶段而不是 Page_Load 设置选定的值?

于 2008-09-13T13:35:13.283 回答
0

I had the same issue, like what Thunder3 mentioned, I did a redirect back to the page, and was calling a method on Page_Load, to set the RadioButtonList selected value. But the selected value was not applied to the RadioButtonList.

I solved the issue by calling the method on Page_Init instead.

于 2009-12-02T09:33:17.777 回答
0

一个可能的原因,也是我最近遇到的一个原因是,radiobuttonlist 根据值而不是 ID 来区分项目,因此如果存在重复值,就会观察到这个问题。

下面的链接提供了详细的解释。

RadioButtonList 所选项目不坚持回发

于 2011-02-06T19:07:04.500 回答