Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Asp.net RadioButtonList值为空_Asp.net_Webforms - Fatal编程技术网

Asp.net RadioButtonList值为空

Asp.net RadioButtonList值为空,asp.net,webforms,Asp.net,Webforms,我正在为多项选择建立一个网站。 我的页面包含加载页面时生成的两个RadioButtonList。 但是,当我选择item并单击按钮时,selectedItem具有空值。这是我的代码: public partial class WebForm1 : System.Web.UI.Page { MultipleChoiceDbContext db = new MultipleChoiceDbContext(); List<string> questionList = new

我正在为多项选择建立一个网站。 我的页面包含加载页面时生成的两个RadioButtonList。 但是,当我选择item并单击按钮时,selectedItem具有空值。这是我的代码:

public partial class WebForm1 : System.Web.UI.Page
{
    MultipleChoiceDbContext db = new MultipleChoiceDbContext();
    List<string> questionList = new List<string>();
    List<RadioButtonList> optionList = new List<RadioButtonList>();
    List<string> answerList = new List<string>();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var query = from data in db.QAs
                        select data;
            QA question;

            int i = 1;
            ListItem liA;
            ListItem liB;
            ListItem liC;
            ListItem liD;
            while (i < 3)
            {
                question = query.ToList()[(new Random()).Next(query.ToList().Count)];
                questionList.Add(question.Question);
                answerList.Add(question.Answer);

                liA = new ListItem(question.A, question.A);
                liB = new ListItem(question.B, question.B);
                liC = new ListItem(question.C, question.C);
                liD = new ListItem(question.D, question.D);

                RadioButtonList rdl = new RadioButtonList();
                rdl.Items.Add(liA);
                rdl.Items.Add(liB);
                rdl.Items.Add(liC);
                rdl.Items.Add(liD);

                optionList.Add(rdl);
                phContent.Controls.Add(rdl);

                i++;
            }
        }
    }
    protected void btnok_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < optionList.Count; i++)
        {
            string content = "";
            content += optionList[i].SelectedItem.Value + "<br />";
            Response.Write(content);

        }
    }
}
public分部类WebForm1:System.Web.UI.Page
{
multiplechicedbcontext db=新的multiplechicedbcontext();
List questionList=新列表();
列表选项列表=新列表();
List answerList=新列表();
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
var query=来自db.QAs中的数据
选择数据;
质量保证问题;
int i=1;
列表项liA;
列表项库;
列表项liC;
列表项盖子;
而(i<3)
{
question=query.ToList()[(new Random()).Next(query.ToList().Count)];
问题列表。添加(问题。问题);
答案列表。添加(问题。答案);
liA=新列表项(问题A,问题A);
liB=新列表项(问题B,问题B);
liC=新列表项(问题C,问题C);
liD=新列表项(问题D,问题D);
RadioButtonList rdl=新的RadioButtonList();
rdl.Items.Add(liA);
rdl.Items.Add(liB);
rdl.项目.添加(liC);
rdl.项目.添加(盖子);
optionList.Add(rdl);
phContent.Controls.Add(rdl);
i++;
}
}
}
受保护的无效btnok_单击(对象发送者,事件参数e)
{
对于(int i=0;i”;
回答。写(内容);
}
}
}

每次回发时,您都必须在
Page\u Init
或(最新的)
Page\u Load
中使用与以前相同的ID重新创建动态创建的控件。另外:当HTML被发送到客户端时,即使是您创建的所有对象(因此您的列表)也会在页面生命周期结束时被处理。那么,我该如何解决这个问题呢?为什么您需要动态创建它,为什么您不能使用gridview或repeater?为什么需要将它们存储在该列表中,可以使用
var rbs=phContent.Controls.OfType().ToList()获取它们。如果使用GridView或Repeater,则必须循环
GridView.Rows
Repeater.Items
并使用
row.FindControl(“RadioButtonListID”)
。这是我遇到问题时得到的第一种方法。所以我可以试着自己做。以及var rbs=phContent.Controls.OfType().ToList()的位置?您希望获取所有
RadioButtonList
s的位置,以及您是否在不使用类似
Repeater的webdatabound控件的情况下保持动态方法。