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);
}
解决后另有高分附送 谢谢 展开
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);
}
解决后另有高分附送 谢谢 展开
4个回答
展开全部
变量string[] chioce 在每次选中RadioButton的时候都会重新初始化,所以你在获取学员选择答案的时候chioce都是new string[7] { "", "", "", "", "", "", "" }状态的。
你如果把 string[] chioce改为静态的或许可行。
你还是去学一下asp.net 页面的生存周期。
你如果把 string[] chioce改为静态的或许可行。
你还是去学一下asp.net 页面的生存周期。
追问
第一次调试并且选择A单选框可以正确获取。 string[] chioce 是作为参数向按钮事件传递值的。没有写到页面load事件中。
追答
没有写在load事件中也是一个类变量。当每次按钮回传时,都会重新实例化一个Page,所以你的
string[] chioce = new string[7] { "", "", "", "", "", "", "" }每次都会执行。你可以定义成
static string[] chioce = new string[7] { "", "", "", "", "", "", "" }。但是这不是根本的解决办法。
展开全部
设置生成的Radio的EnableViewState值为True
还有 AutoPostBack的值为True
还有 AutoPostBack的值为True
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量string chioce 在每次选中RadioButton的时候都会重新初始化,所以你在获取学员选择答案的时候chioce都是new string[7] { "", "", "", "", "", "", ‘,"" }状态的
你如果把 string[] chioce改为静态的或许可行哦
你如果把 string[] chioce改为静态的或许可行哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string[] chioce = new string[7] { "", "", "", "", "", "", "" }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询