一个单选列表按钮为什么在SelectedIndexChanged事件里获取不到值只能在PAGE_LOAD里获取到值?

lijuan2083 2008-11-20 04:13:25
一个单选列表按钮为什么在SelectedIndexChanged事件里获取不到值只能在PAGE_LOAD里获取到值?
我在PAGE_LOAD里写
if (rblstAnswers.SelectedItem != null)
lblItem0.Text = rblstAnswers.SelectedItem.Text;
就能在lblItem0中显示出选中项的值,但接着在SelectedIndexChanged事件里就得不到值,代码这么写的:
protected void rblstAnswers_SelectedIndexChanged(object sender, EventArgs e)
{

if (!string .IsNullOrEmpty (rblstAnswers .SelectedValue ))
{
lblItem1.Text = rblstAnswers.SelectedValue;
}
else
lblItem1.Text = "执行ELSE后的语句";
}
但在lblItem1中总是显示“执行ELSE后的语句”。
这是这么回事啊?
...全文
141 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijuan2083 2008-11-21
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class vote : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{

Session["userName"] = Request.UserHostAddress;
userVotes();
voteMain objMain = new voteMain();
if (!IsPostBack)
{
Session["drMain"] = objMain.drMain();
}

SqlDataReader drMain = (SqlDataReader)Session["drMain"];
if (drMain != null)
{
if (drMain.Read())
{
Label1.Text = (string)drMain["title"];
txtVoteID.Text = drMain["voteID"].ToString();
lblDescription.Text = (string)drMain["miaoshu"];
int voteID = int.Parse(txtVoteID.Text);
Session["drMain"] = drMain;
SqlDataReader drAnswer = objMain.drAnswers(voteID);

if ((bool)drMain["voteType"] == true)
{
rblstAnswers.DataTextField = "picFile";
rblstAnswers.DataTextFormatString = "<img src='admin/uploadimg/{0}' width=100 height=100 />";
}
else
{
rblstAnswers.DataTextField = "title";
rblstAnswers.DataTextFormatString = "";
}

rblstAnswers.DataSource = drAnswer;
rblstAnswers.DataBind();
}
else
Response.Redirect("voteLast.aspx");
}
}
protected void rblstAnswers_SelectedIndexChanged(object sender, EventArgs e)
{


}
protected void rblstAnswers_DataBound(object sender, EventArgs e)
{

}
protected void userVotes()//这个方法将用户投票情况插入数据库中
{
if (Session["userName"] != null)
{
int answerID = 0;
int voteID = int.Parse(txtVoteID.Text);
string userName = (string)Session["userName"];
string userIP = (string)Session["userName"];
if (rblstAnswers.SelectedItem != null)
answerID = int.Parse(rblstAnswers.SelectedItem.Value.ToString());

if (answerID != 0)
{
voteMain objMain = new voteMain();
//计算该用户对该投票项目的得分
int scores = objMain.Scores(answerID, voteID);
//将该用户对该投票项目的信息情况插入到用户投票表中
objMain.InsertUsersVote(userName, userIP, voteID, answerID, scores);

}
}
else
Response.Write("请登陆或注册!");
}

}
这是我写的全部代码,但是现在出现一个问题是当用户刷新页面的时候就进入了下一个投票题目了,我想实现判别一下,如果是用户刷新页面就不进入下一个题目,如果是选中了一个按钮提交了就进入下一个题目。不知道怎么实现?
wodexiaopu2 2008-11-20
  • 打赏
  • 举报
回复
绑定的时候没设 Value 吧?

rblstAnswers.DataValueField = "ID";
rblstAnswers.DataTextField = "text";

  • 打赏
  • 举报
回复
你一个取Text,一个取Value,能说明什么问题?
lijuan2083 2008-11-20
  • 打赏
  • 举报
回复
我页面上的EnableViewState="true"啊,不是false啊。
怎么回事呢
takako_mu 2008-11-20
  • 打赏
  • 举报
回复
你的頁面上是不是有EnableViewState="false"這一句?改成true

62,253

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧