ViewState can be used to store the value.
public bool Value
{
get
{
object obj = ViewState["value"];
return obj==null?false:(bool)obj;
}
set
{
ViewState["value"]= value;
}
}
protected void Yes_Click(object sender, EventArgs e)
{
Value= true;
imgYes.ImageUrl = "~/Images/YesNo_selected.j
imgNo.ImageUrl = "~/Images/YesNo_default.jp
}
protected void No_Click(object sender, EventArgs e)
{
Value = false;
imgYes.ImageUrl = "~/Images/YesNo_default.jp
imgNo.ImageUrl = "~/Images/YesNo_selected.j
}
Main Topics
Browse All Topics





by: jinn_hnnlPosted on 2007-04-20 at 00:42:04ID: 18944723
OHh I had this problem before.
pg"; g";
g"; pg";
private bool _value = false;
of course, when the page is back, this value (which is not be included in FORM) will be reseted to original value. (the ViewState doesn't work for this kind of variable)
There are several solutions, the most convinient solutions are: using session or, form control (like label, hidden feild ...). For your case I suggest using checkBox and setVisible to false is the best way:
in your ASCX:
<asp:CheckBox ID="cbValue" Checked="false" Visible="false" runat="server" />
in your code behind
protected void Yes_Click(object sender, EventArgs e)
{
cbValue.Checked = true;
imgYes.ImageUrl = "~/Images/YesNo_selected.j
imgNo.ImageUrl = "~/Images/YesNo_default.jp
}
protected void No_Click(object sender, EventArgs e)
{
cbValue.Checked = false;
imgYes.ImageUrl = "~/Images/YesNo_default.jp
imgNo.ImageUrl = "~/Images/YesNo_selected.j
}
public bool GetYesNoValue()
{
return cbValue.Checked;
}
You can always detect if the Yes or No button was clicked by GetYesNoValue. The checkbox remain its state after postback (cause it's a form element)
Its Visibility set to false, so it won't be rendered (doesn't effect any performance)
Hope this helps
JINN ^^