在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总是不是在客户端选择的那个列表项。
调试了好多次都是这样的,这个是什么问题?
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总是不是在客户端选择的那个列表项。
调试了好多次都是这样的,这个是什么问题?
这条语句要加在 Page_Load 的IsPostBack里面!
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);
}