asp.net中如何给treeview的每个节点加一个checkbox

asp.net中如何给treeview的每个节点加一个checkbox,第1张

<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All">

</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框架。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11945610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存