在asp.net c#中,如何在单击“提交”按钮后获取动态创建的控件的值

在asp.net c#中,如何在单击“提交”按钮后获取动态创建的控件的值,c#,asp.net,C#,Asp.net,在我的aspx页面中,我有一个面板(通用面板)。这一个由多个面板动态构建而成。每个内部面板包含一个标签(id=“lbl”+i.ToString()),一张照片(id=“img”+i.ToString()),以及一个按钮submit(“btn”+i.ToString()),这些按钮是动态创建的,并用sql数据填充。单击submit按钮时,我希望在通用面板旁边的更新面板中的标签中显示名称。我该怎么做?有人有办法吗?非常感谢你的帮助 我的aspx文件 出口者 餐厅 Vos信息 Votre命令

在我的aspx页面中,我有一个面板(通用面板)。这一个由多个面板动态构建而成。每个内部面板包含一个标签
(id=“lbl”+i.ToString())
,一张照片
(id=“img”+i.ToString())
,以及一个按钮submit
(“btn”+i.ToString())
,这些按钮是动态创建的,并用sql数据填充。单击submit按钮时,我希望在通用面板旁边的更新面板中的标签中显示名称。我该怎么做?有人有办法吗?非常感谢你的帮助 我的aspx文件



出口者
餐厅
  • Vos信息
  • Votre命令
  • 瓦利德
  • 商人
    它应该是

        for (int i=1; i<=5; i++)
     {
       Label myLabel = new Label();
    
       // Set the label's Text and ID properties.
       myLabel.Text = "Label" + i.ToString();
       myLabel.ID = "Label" + i.ToString();
       PlaceHolder1.Controls.Add(myLabel);
       // Add a spacer in the form of an HTML <br /> element.
       PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
     } 
    
    您需要事件处理程序btnSubmit\u Click将Click事件添加到按钮


    希望这会有所帮助

    我可能误解了你的意图,但我认为这会满足你的要求

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    BindEntree();
                }
                else
                {
                    Label1.Text = TextBox1.Text;
                }
    
            }
    
    *您必须消除标签的文本值:

     <asp:Label ID="Label1" runat="server" ></asp:Label> 
    
    
    

    请记住,有几种方法可以做到这一点,这是相当粗糙的,但它会让您了解回发如何与更新面板一起工作。

    向我们展示一些代码员!展示你的尝试!是您正在创建的服务器端控件,即asp:Labe…l或html控件,当然是。很抱歉现在你们都有我的密码了。我刚刚发布了我的代码。谢谢你的快速回复。谢谢你的回复。但是,当我单击submit按钮时,如何获取标签内容以便在我旁边的面板中显示它呢?您需要像
    var allLabels=panel1.Controls.OfType().Concat(panle1.Controls.OfType())这样编码;foreach(所有标签中的标签){value+=Label.ID+“:“+Label.Text+“\\n”}
    再次感谢Shayan。我的观点是,当所有的diventre都被创建时,我希望当用户点击submit按钮时在我的更新面板中显示所有的内容。谢谢你的回复。我当然解释了我非常想要的东西。事实上,我在面板中创建了多个div(diventre),具体取决于我的sql server值。每个diventre都有其提交按钮。我希望当用户单击它时,在我面板旁边的更新面板中显示diventre的内容。我不知道该怎么做,因为我无法获取diventreok中显示的sql行的id值,我已经了解了这个想法,但仍然不完全清楚。我只看到一个更新面板。您希望每个动态生成的按钮显示哪个控件(文本框)的内容?到什么控制(标签)?哈哈。对不起我的英语。用户可以选择要在更新面板中显示的内容。例如,页面显示10个diventre。他选择了其中的两个,并通过在更新面板中按每个提交按钮来显示它们的内容。在更新面板中,你会看到他的照片和他的名字,我现在明白你想做什么了。考虑到您当前的设置,我试图想出一个解决方案。然而,有许多问题需要克服,即1.保持项目的视图状态和2。能够动态地使每个按钮成为AsyncPostBackTrigger。您应该做的是在表单上有一个静态asp数据控件,例如网格或中继器,并动态地向其中添加行。然后,您可以在数据绑定期间遍历这些项,并在每一行中添加一个按钮。如果您是asp.NET新手,非常感谢您。是的,我是asp.net的新手。我在等你。再次感谢
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    BindEntree();
                }
                else
                {
                    Label1.Text = TextBox1.Text;
                }
    
            }
    
     <asp:Label ID="Label1" runat="server" ></asp:Label>