2010-09-29 49 views

回答

3

我假设“当用户点击一个按钮”时,你的意思是当用户单击其中一个单选按钮选项时。没有看到任何代码,两种常见情况是:

  1. 脚本错误正在发生,正在阻止回发
  2. (脚本错误可以在IE或经由Firefox和Firebug扩展为两个诊断选项来检测) UpdatePanel的参与,而你试图使用的AutoPostBack刷新一个UpdatePanel

如果是后一种情况下,你正在使用的UpdatePanel,尝试把在RadioButtonList自己的UpdatePanel内,用的AutoPostBack设置为true的RadioButtonList和UpdatePanel上的UpdateMode设置为“始终”(de故障值)。

3

我发现设置一个单选按钮的Checked状态为false属于一个组的单选按钮导致单选按钮AutoPostBack="true"不触发回发。

例如:

标记

<asp:RadioButton ID="radioButton1" runat="server" GroupName="Group1" AutoPostBack="true" OnCheckedChanged="radioButton1_Click" /> 
<asp:RadioButton ID="radioButton2" runat="server" GroupName="Group1" AutoPostBack="true" OnCheckedChanged="radioButton2_Click" /> 
<asp:RadioButton ID="radioButton3" runat="server" GroupName="Group1" AutoPostBack="true" OnCheckedChanged="radioButton3_Click" /> 

代码

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
    radioButton1.Checked = true; 
    radioButton2.Checked = false; // don't do this! 
    radioButton3.Checked = false; // don't do this! 
    } 
} 

离开的最后两个任务了。

2

我发现,如果默认单选按钮为Checked = true,则浏览器在呈现页面时不会设置单选按钮的onclick属性。

最好的解决方案似乎是手动添加属性,或者设置单选按钮以在页面呈现后进行检查。

对这个问题到目前为止,我已经找到了最好的讨论可以在 http://forums.asp.net/t/965667.aspx/1

3

找到了在我后面的代码设置选择的值设置为true,当我有同样的问题。

rdoProjectType.Items.FindByValue("Fixed Fee").Selected = True 

这实际上导致回发的javascript根本无法呈现。奇怪的!我通过使用控件的.SelectedIndex方法来解决问题,以打开适当的单选按钮。我相信你也可以使用.SelectedValue。

相关问题