在pageload的时候动态添加了RadioButtonList控件的列表项:
this.rblVote.Items.Add(new ListItem(items[1], items[0]));
在页面提交的时候却不能获取正确的选择项:
 string oldItemString = this.rblVote.SelectedItem.Value + "," + this.rblVote.SelectedItem.Text;
以上this.rblVote.SelectedItem.Value 和this.rblVote.SelectedItem.Text总是不是在客户端选择的那个列表项。
调试了好多次都是这样的,这个是什么问题?

解决方案 »

  1.   

    this.rblVote.Items.Add(new ListItem(items[1], items[0]));
    这条语句要加在 Page_Load 的IsPostBack里面!
      

  2.   

    IsPostBack哈哈,现在看标题就知道答案了,艾,现在的提问太没有水准了
      

  3.   

    其实就是放在(!IsPostBack )
      

  4.   


     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetVote();
            }
        }    private void GetVote()
        {
            DC365.Entry.Vote vote = dataProvider.GetVoteByID(1);
            vote.Item = vote.ItemString.Split('|');
            string[] items = null;
            foreach (string item in vote.Item)
            {
                items = item.Split(',');
                this.rblVote.Items.Add(new ListItem(items[1], items[0]));
            }
        }    protected void btnSubmit_Click(object sender, EventArgs e)
        {
            DC365.Entry.Vote vote = dataProvider.GetVoteByID(1);
            string itemsString = vote.ItemString;
            int newCount = Convert.ToInt32(this.rblVote.SelectedValue) + 1;
            string oldItemString = this.rblVote.SelectedItem.Value + "," + this.rblVote.SelectedItem.Text;
            string newItemString = newCount + "," + this.rblVote.SelectedItem.Text;
            itemsString = itemsString.Replace(oldItemString, newItemString);        dataProvider.ChangeVoteItem(1, itemsString);
        }