0

我有一个 Web 应用程序,我使用用户控件根据行将其放置在表中,具体取决于计数。在用户控件中有 4 个文本框,我已将每个用户控件放置在表行中,并在页面加载时为该行提供唯一 ID。问题是,当我提交表单时,我试图通过行 id 获取数据,但控件返回 null。我正在获取行但在该行中我无法找到控件。如果我做过任何磨损,请查看我的代码。

MasterPage ctl00 = FindControl("ctl00") as MasterPage;
ContentPlaceHolder cplacehld = ctl00.FindControl("ContentPlaceHolder1") as ContentPlaceHolder;
foreach (SeatBookDetails sff in SBD)
{
    TableRow trow = (TableRow)cplacehld.FindControl("Row_" + sff.SeatRowId.ToString() + "_" + sff.SeatRowno.ToString());
    if (trow != null)
    {
        string ss = trow.ID;

        TextBox txtcust = (TextBox)trow.FindControl("txtcustname");

        if (txtcust != null)
        {

      }
        TextBox txtprofession = (TextBox)trow.FindControl("txtprofession");
        if (txtprofession != null)
        {

        }
    }
}

当我检查元素时,我发现了结构,我附上了这个外观的图像。在这里可以做什么?我怎么能得到这个控件?

截图

4

1 回答 1

0

首先在您的用户控件类中提供仅具有 get 访问器的属性,例如:

public string CustomerName { get { return txtCustName.Text; } }

foreach然后您可以使用循环遍历表格的行和单元格

然后使用以下命令找到您的用户控件:

if (_control is Usercontrol) { Usercontrol _form = (Usercontrol )_control; string name = _form.CustomerName; }

还要确保动态加载用户控件集合Page_initPage_Load 使其可访问。

于 2013-02-05T08:27:52.513 回答