繁体   English   中英

从ascx.file中动态添加的控件中获取价值

[英]Getting value from dynamically added controls from ascx.file

我有一个关于从下拉列表和文本框中捕获我的值并将其保存到我的数据库的问题。

我正在使用ASP.NET aspx页面,而不是MVC。

我有一个带有我的控件的ascx文件。 我正在我的代码中动态创建它们。 我对回发没有问题,我将ViewState用作控件中的计数器。 每个控件都具有一个“ ratingcontrols” + viewState计数器的ID。 因此,例如,我有6个下拉列表和4个文本框,计数器从0到8。第一个下拉列表的ID为“ ratingcontrols0”,第二个为“ ratingcontrols1”,依此类推。 我的前3个下拉列表实际上是分开的天,月和年,它代表了我的日历。 接下来的3个下拉列表是我的第二个日历。

当我单击按钮添加控件时,这10个控件是从我的ascx文件中作为一个组创建的。 当我第二次单击一个按钮时,我有另一组10个控件,现在我的ID从9变为17。

我的问题是,如何获取这些值,并将每个组添加到数据库中,以及如何将每组3个下拉列表连接到具有选定值的日期中?

以下代码对我有用:

public Control FindControlRecursivelyByID(Control controlToSearch, string controlToFind)
{
    Control rtnCtrl = null;
    foreach (Control ctrl in controlToSearch.Controls) {
        if (ctrl != null && ctrl.ID == controlToFind) {
            rtnCtrl = ctrl;
        } else {
            if (ctrl.HasControls & rtnCtrl == null) {
                rtnCtrl = FindControlRecursivelyByID(ctrl, controlToFind);
            }
        }
    }
    return rtnCtrl;
}

调用此方法时,还必须进行直接广播:

((TextBox)FindControlRecursivelyByID(this.Page, "controlID")).Text == "SomeText"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM