加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在c#中访问动态创建的复选框值

发布时间:2020-12-15 05:40:51 所属栏目:百科 来源:网络整理
导读:我在asp.net中动态添加了一个CheckBox CheckBox cb = new CheckBox();cb.Text = "text";cb.ID = "1"; 在声明上述代码之后,我可以通过pageLoad中的c#访问此CheckBox. 但是当我按下按钮后尝试访问此值时,我得到空值. CheckBox cb1 = (CheckBox)ph.FindControl(
我在asp.net中动态添加了一个CheckBox
CheckBox cb = new CheckBox();
cb.Text = "text";
cb.ID = "1";

在声明上述代码之后,我可以通过pageLoad中的c#访问此CheckBox.
但是当我按下按钮后尝试访问此值时,我得到空值.

CheckBox cb1 = (CheckBox)ph.FindControl("1");
Response.Write(cb1.Text);
   ph.Controls.Add(cb);

(ph是占位符)
任何人都可以告诉我这里有什么不对吗?

解决方法

单击按钮后,它将回发将刷新状态的页面.如果您希望值是持久的,那么您需要在ViewState或类似的内部支持它们.
private bool CheckBox1Checked
{
    get { return (ViewState["CheckBox1Checked"] as bool) ?? false; }
    set { ViewState["CheckBox1Checked"] = value; }
}

void Page_load(object sender,EventArgs e)
{

    CheckBox cb = new CheckBox();
    cb.Text = "text";
    cb.ID = "1";
    cb.Checked = CheckBox1Checked;
    cb.OnCheckedChanged += CheckBox1OnChecked;
    // Add cb to control etc..
}

void CheckBox1OnChecked(object sender,EventArgs e)
{
    var cb = (CheckBox)sender;
    CheckBox1Checked = cb.Checked;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读