I have got this code:
public partial class Default2 : System.Web.UI.Page
{
public bool MyProperty { get; set; }
Button newBTN;
GenerateMe gm;
protected void Page_Load(object sender, EventArgs e)
{
newBTN = new Button();
newBTN.Text = "Button 1";
gm = new GenerateMe(PlaceHolder1, newBTN);
gm.ExecuteAll();
Response.Write(gm.ResponseWrite());
}
}
class GenerateMe
{
PlaceHolder holder;
Button button;
RadioButton b = new RadioButton();
string buttonPressed;
public GenerateMe(PlaceHolder h, Button b)
{
holder = h;
button = b;
}
public void ExecuteAll()
{
Table t = new Table();
TableRow tr = new TableRow();
TableCell tc = new TableCell();
tc.Controls.Add(button);
tr.Cells.Add(tc);
t.Rows.Add(tr);
holder.Controls.Add(t);
holder.Controls.Add(b);
if (b.Checked)//This is always false
{
buttonPressed = b.Checked.ToString();
}
}
public string ResponseWrite()
{
return buttonPressed;
}
}
我可以看到radiobox被检查..但是它的check属性在post backs之间的所有时间都是false。如果按下它,我如何得到无线电筒状态。
PS。我不想使用radioboxes事件..如果在回发后按下它我想获得一个属性
答案 0 :(得分:1)
将变量保存在会话变量中。
Session["buttonPressed"]="checked";
在其他页面中将其命名为:
string check=Session["buttonPressed"].ToString();
编辑:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
newBTN = new Button();
newBTN.Text = "Button 1";
gm = new GenerateMe(PlaceHolder1, newBTN);
gm.ExecuteAll();
Response.Write(gm.ResponseWrite());
}
}
使用PreInit事件生成控件。