viewstate 的用法

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:04:13
最近接触ViewState,很是迷茫,代码如下:
Default.aspx.cs:
public partial class _Default : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
ViewState["ShowRightAns"] = false;
BindDate();
}

}
protected void Button1_Click(object sender, EventArgs e)
{
string StuAnswer="";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if ((GridView1.Rows[i].FindControl("choice1") as RadioButton).Checked)
StuAnswer += "|1";
else if ((GridView1.Rows[i].FindControl("choice2") as RadioButton).Checked)
StuAnswer += "|2";
else if ((GridView1.Rows[i].FindControl("choice3") as RadioButton).Che

<asp:Label ID="Label1" runat="server" Text=' <%#"正确答案:"+Eval("Answer") %>' Visible=' <%#ViewState["ShowRightAns"] %>'> </asp:Label>

这是GridView1的ItemTemplate里的么?

还是在哪里的?你是改变了ViewState,但是你让上面那个控件重新计算表达式的值了吗?

既然没有重新计算表达式的值,那又怎么会显示出来呢?。

//--补充
实际上,对让GridView1内部的控件重新计算表达式的最好方法就是重新绑定数据,但是我看了你的代码,好像你在里面存储有用户选择的值是么,所以你有几种方法,一种就是像你获取用户选择的项那样,每一行去找出那个Label,然后设置它的Visible属性,另一种方法就是处理你的数据源,让用户选择影响到数据源,然后重新绑定,就可以了。

给你个图一看就明白
不明白在说
http://farm1.static.flickr.com/87/243496688_3e84cfc8c2_o.jpg
-------------
其实他就是一个html的数据缓存层
只是当前有效
你只说你迷茫你那里迷茫啊

我个人觉得你用的方法太麻烦...
你可以直接buttonclick这样写:this.lable.text="正确答案:"
+("Answer")
this.lable.visible=true;