C#Radiobutton oncheckchanged没有开火

时间:2014-07-24 09:55:15

标签: c# javascript asp.net

我在转发器内部动态生成了radiobutton控件。在这个单选按钮上,我调用OnCheckChanged来改变检查无线电按钮后代码中的某些值。

<EclipseUI:CustomRadioButton ID="RadioButton_Selected" runat="server" GroupName='<%# "s_id_" + Eval("FeaturePackId") %>' 
 OnCheckedChanged="RadioButton_Selected_OnCheckedChanged"/>

我上面的Radiobuttonis并调用显示的方法。

如果它有任何区别,则在div点击时,jquery代码会检查并取消选中radiobutton。

protected void RadioButton_Selected_OnCheckedChanged(object sender, EventArgs e)
{
    CustomRadioButton rb = (CustomRadioButton) sender;
    System.Diagnostics.Debug.WriteLine(rb.GroupName);
    int FeatureID = Int32.Parse(rb.GroupName.Remove(0, 4));

    if (rb.Checked)
    {
        FeatureList.Add(FeatureID);
    }
    if (!rb.Checked)
    {
        foreach (var itemToRemove in FeatureList)
        {
            FeatureList.Remove(itemToRemove);
            System.Diagnostics.Debug.WriteLine(itemToRemove);
        }
    }
}

public List<int> FeatureList = new List<int>();

此代码基本上添加了将radiobutton上的值减去int的列表。但是这个方法根本没有被调用。我已尝试放置调试writeline语句,但这些语句不会向输出窗口输出任何内容。

有谁知道为什么这个方法没有被解雇?

2 个答案:

答案 0 :(得分:1)

首先尝试这个因为它很容易。

这里有类似的问题: OnCheckedChanged event not firing

与您发布的答案有两点不同: 启用=&#34;真&#34; 的AutoPostBack =&#34;真&#34;

但是既然你已经尝试了这个我真的认为它更有可能是因为你在页面生命周期中的错误位置(在时间上太早)在页面前渲染中创建元素,所以你可能想要创建方法绑定在非回发的页面加载中。

简而言之,你有方法和按钮,但它们并没有相互约束。

我不确定此代码是否会正常工作,但它可能会给您一些想法。

    if (!Page.IsPostBack)
      {
         CustomRadioButton rb = (CustomRadioButton)e.Item.FindControl("CustomRadioButtonID");
         rb.OnCheckedChanged += new EventHandler(RadioButton_Selected_OnCheckedChanged);
      }

答案 1 :(得分:-1)

我认为您应该在CustomRadioButton控件上将PostBack属性设置为TRUE。