Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取动态创建的单选按钮的值_C#_Asp.net - Fatal编程技术网

C# 获取动态创建的单选按钮的值

C# 获取动态创建的单选按钮的值,c#,asp.net,C#,Asp.net,我以这种方式创建了单选按钮数组: RadioButton[] radio = new RadioButton[size]; for (int i = 0; i < size ; i++) { radio[i] = new RadioButton(); radio[i].ID = "voted"+i.ToString(); radio[i].GroupName = "voted"; Session[radio[i].ID] = radi

我以这种方式创建了单选按钮数组:

RadioButton[] radio = new RadioButton[size]; 

for (int i = 0; i < size ; i++)
  {
      radio[i] = new RadioButton();
      radio[i].ID = "voted"+i.ToString();
      radio[i].GroupName = "voted";
      Session[radio[i].ID] = radio[i];
  }
RadioButton[]单选=新的RadioButton[大小];
对于(int i=0;i
当用户单击该按钮时,事件被激活

protected void Votes_Click(object sender, EventArgs e)
{
    RadioButton r=new RadioButton();
    for (int i = 0; i < (int)Session["cancount"]; i++)
    {
         r=(RadioButton)(Session["voted" + i.ToString()]);
         if (r.Checked)
         {
             //Do somethings; 
         }
    }
}
受保护的无效投票\u单击(对象发送者,事件参数e)
{
RadioButton r=新的RadioButton();
对于(int i=0;i<(int)会话[“cancount”];i++)
{
r=(单选按钮)(会话[“投票”+i.ToString());
如果(右勾选)
{
//做一些事情;
}
}
}

但是
r.checked
的值总是
false
,为什么它没有更改???

这个问题缺少很多上下文,但是考虑到您编写web站点的方式看起来非常奇怪,我想问题是您从未添加单选按钮来控制页面的控件层次结构。另外,我猜您是在Page_Load事件而不是Page_Init事件中创建单选按钮,这是一个问题,因为它们不会从回发中拾取单击,因为它们是在ASP.NET处理单击之后添加的


如果这对您来说没有任何意义,那么您需要多读一点关于ASP.NET如何工作的内容。你不能像对待桌面应用程序一样对待它。事件及其处理程序由HTTP POST分隔,这会导致创建和初始化控件的方式和位置的敏感性。

除去所有会话状态内容,正在单击的按钮将作为“发送方”传递给事件处理程序。要访问单击的单选按钮,只需将其强制转换为单选按钮,即可访问您的对象:

RadioButton r = (RadioButton)sender;
您最好使用RadioButtonList,而不是正在设置的会话变量。然后只需在页面上添加RadioButtonList,并在循环中添加按钮:

myRbl.Items.Add(new ListItem("text", i.ToString(), true));

我不完全确定你想在这里完成什么。会话与确定他们是否选择了单选按钮有什么关系?您是否试图跟踪用户投票的内容?还有,您是如何将单选按钮添加到页面的?是的,我想跟踪用户投票的内容,并且我没有发布我的孔代码,我正在将这些单选按钮添加到我添加到页面面板的表格中。请添加更多上下文-例如,您创建单选按钮的页面生命周期的哪个部分?预初始化,初始化,加载,预渲染?在哪里?是的,你是对的。我在Page_Load事件中创建了单选按钮,当我在Page_Init事件中创建它们时,我的代码工作正常。非常感谢。我很高兴它成功了。我本来希望通灵阅读能得到更多+1,但我会接受我得到的;)