</asp:TreeView>
主要是:ShowCheckBoxes="All"
这个需要将checkbox添加到GridView的模板列中,然后用下面代码:
for (int i = 0 i < GridView1.Rows.Count i++){
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1")
if (cbox.Checked == true)
{
//要做的事
}
}
上面从i就能知道是第几行,如果要获取表中id,还需要模板列中隐藏id,才好获取。
asp.net webform保持状态是通过 ViewState实现的,其实就是 在页面 中有个 id=“__ViewState"的Hidden, 在页面回传到服务器后,通过存在viewstate中数据可以还原控件的数据。但是对于动态创建的 控件,这个viewstate没法存所以无法还原,
微软官方的方法是,在 Page_Init方法中,重新创建控件,只要Id和之前的一样的话在Page_Load的时候,控件的值就能还原回来。
如果要深入了解的话,需要弄懂webform页面生存周期内各个事件执行顺序,
不过我觉得webform的服务器控件有时候很麻烦,而且很容易误导人,建议少用,直接写原生的html吧,或者学习MVC框架。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)