string strUpdateVoteDetails = "update voteDetails set voterNum=voteNum+1 where voteDetalisID=" + this.RadioButtonList1.SelectedValue;
问题: 这一句中的this.RadioButtonList1.SelectedValue会是空的,原因在于:他还在初始化状态,也就是说,现在原状态不是你已经选择了RadioButtoList1的状态,而是它刚刚初化的状态
原因:页面一加载就会调用Page_Load事件,在Page_Load事件中有一个调用绑定事件(getVoteItem()),当进行单击Button按钮时也会调用Page_Load事件所以又会对绑定事件进行再次初始化,导致选择的this.RadioButtonList1.SelectedValue初始化成空了,
下面是数据的绑定:
//得到选项, 数据项的绑定
public void getVoteItem()
{
String strSql = "select voteDetailsID ,voteItem from voteDetails where ID=" + ID;
SqlDataReader sdr = dbSource.getSdr(strSql);
this.RadioButtonList1.DataSource = sdr;//指定数据源
this.RadioButtonList1.DataTextField = "voteItem";//指定要显示的字段
this.RadioButtonList1.DataValueField = "voteDetailsID";//指定主键字段
this.RadioButtonList1.DataBind();//绑定Rd,这一句一定要写,否则看不到内容
sdr.Close();//关闭数据流
dbSource.clearSc();//清除资源,关闭数据库的连接
}
解决:对绑定事件进行判断,若是第一次加载就是进行初始化,其它情况不能够进行初始化
protected void Page_Load(object sender, EventArgs e)
{
//PageLoad方法 是在页面一加载的时候就会执行的方法
getID();
getVoteTitle();
if (!Page.IsPostBack)// Page.IsPostBack 表明是回传,加上取反符!表明,表明是第一次
{
bindData();//客户第一次请求的时候我 们才绑定 选项
}
}