C# .net 动态构造j个单选框 1按钮 点击按钮返回单选框的ID 返回值不正确,求分析改错,并求复选框如何写

代码如下希望返回值为A、B、C、E、F、G其中之一,但代码长期返回否,否B。intj=3;//定义单选框数量j值是从数据库中取出这里暂定为3string[]chioce=... 代码如下 希望返回值为A、B、C、E、F、G其中之一,但代码长期返回 否,否B。

int j = 3;//定义单选框数量 j值是从数据库中取出 这里暂定为3
string[] chioce = new string[7] { "", "", "", "", "", "", "" };//存放单选框选项
string[] ABC = new string[7] { "", "A", "B", "C", "D", "E", "F" };//存放单选框ID
protected void Page_Load(object sender, EventArgs e)//页面load
{
for (int xi = 1; xi <= j; xi++)//构造单选框
{
RadioButton[] arrayCheck = new RadioButton[xi + 1];
RadioButton temcheck = new RadioButton();
arrayCheck[xi] = temcheck;
arrayCheck[xi].GroupName = "A";
arrayCheck[xi].ID = xi.ToString();
arrayCheck[xi].CheckedChanged +=new EventHandler(_testpaper_CheckedChanged);
}
//单选框checkedchanged事件
private void _testpaper_CheckedChanged(object sender, System.EventArgs e)
{
int b=Convert.ToInt32(((RadioButton)sender).ID);
if (((RadioButton)sender).Checked == true)
{
chioce[b] = ABC[b];
}
else
{
chioce[b] = "";
}
}

protected void Button1_Click(object sender, EventArgs e)//按钮事件
{
string snswers = "";
//获取学员选择的答案
for (int i = 1; i <= j; i++)
{
snswers = snswers + chioce[i];
}
Response.Write(snswers);
}

解决后另有高分附送 谢谢
展开
 我来答
一路上小星
2011-11-11 · 超过72用户采纳过TA的回答
知道小有建树答主
回答量:120
采纳率:50%
帮助的人:157万
展开全部
变量string[] chioce 在每次选中RadioButton的时候都会重新初始化,所以你在获取学员选择答案的时候chioce都是new string[7] { "", "", "", "", "", "", "" }状态的。
你如果把 string[] chioce改为静态的或许可行。
你还是去学一下asp.net 页面的生存周期。
追问
第一次调试并且选择A单选框可以正确获取。 string[] chioce 是作为参数向按钮事件传递值的。没有写到页面load事件中。
追答
没有写在load事件中也是一个类变量。当每次按钮回传时,都会重新实例化一个Page,所以你的
string[] chioce = new string[7] { "", "", "", "", "", "", "" }每次都会执行。你可以定义成
static string[] chioce = new string[7] { "", "", "", "", "", "", "" }。但是这不是根本的解决办法。
tianya123net
2011-11-11 · 超过30用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:72.9万
展开全部
设置生成的Radio的EnableViewState值为True
还有 AutoPostBack的值为True
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
136316916
2011-11-12
知道答主
回答量:1
采纳率:0%
帮助的人:1693
展开全部
变量string chioce 在每次选中RadioButton的时候都会重新初始化,所以你在获取学员选择答案的时候chioce都是new string[7] { "", "", "", "", "", "", ‘,"" }状态的
你如果把 string[] chioce改为静态的或许可行哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
19980598cici
2011-11-12
知道答主
回答量:1
采纳率:0%
帮助的人:1693
展开全部
string[] chioce = new string[7] { "", "", "", "", "", "", "" }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式