【问题标题】:Get Value From Dynamic Control in Page Asp.Net从页面 Asp.Net 中的动态控制中获取价值
【发布时间】:2011-09-21 19:59:59
【问题描述】:

我有一个动态创建的物料清单,其中每个订单项都是一个动态 user_control。 user_control 有一个用于数量输入的文本框。当我单击提交按钮时,我想从每个文本框中获取所有数量,但控件在页面加载时全部消失,页面显示零控件。

我知道您可以为文本框打开自动回发,然后捕获每个单独的 text_changed_event,但这似乎效率不高。当用户单击提交按钮时,我想遍历所有这些,然后将它们带回相同的物料清单页面。

【问题讨论】:

    标签: asp.net web-applications


    【解决方案1】:

    首先,控件在回发时消失的原因是它们是动态添加到您的页面中的,而当回发发生时,有关动态控件的信息丢失了,并且页面没有有关这些动态控件的信息。

    现在关于从动态用户控件中的控件获取值,您已经使用 FindControl 方法或必须遍历用户控件的 Controls 集合以获取对 TextBoxes 的引用。

    关于如何做到这一点的想法:

    //1. Using ID of user control
    //inside button_click method
    protected void btnSubmit_Click(...)
    {
         TextBox txt1 = idOfUserControl.FindControl(textBoxId);
    }
    
    //2. Using type of user control
    //inside button_click method
    protected void btnSubmit_Click(...)
    {
         foreach(Control c in Page.Controls)
            if(c is YourUserControlClass)
            {
                 YourUserControlClass control = (YourUserControlClass)c;
                 TextBox txt1 = c.FindControl(textBoxId);
            }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多