从“C#”后面生成文本框控件

时间:2013-04-01 07:48:13

标签: c# asp.net

我是asp.net的新手,而且我的英语也不是很好,无论如何,我希望你仍然可以理解我的观点。我在这里有一个问题,基本上我试图将我的应用程序与LinkedIn集成,所以我使用REST API,当我点击一个按钮它重定向我的页面从LinkedIn请求数据,它返回XML数据,它包含用户的教育数据,用户的教育数据的数量是不确定的,所以我决定从后面生成文本框控件(“C#”)。我这样做:

            TextBox txt;
            int i;

            foreach (var element in person)
            {
                if ((element.Name == "first-name") || (element.Name == "last-name"))
                {
                    tbName.Text = tbName.Text + " " + element.Value;
                }
                else if (element.Name == "skills")
                {
                    i = 1;

                    foreach (var child in element.Elements())
                    {
                        if (child.Name == "skill")
                        {
                            txt = new TextBox();
                            txt.ID = "tbSkills" + i;
                            txt.Width = 200;
                            txt.Visible = true;
                            txt.ReadOnly = true;
                            txt.Text = child.Element("skill").Element("name").Value;
                            form1.FindControl("divMoreSkills").Controls.Add(txt);
                            i++;
                        }
                    }
                }
                else if (element.Name == "industry")
                {
                    tbIndustry.Text = element.Value;
                }
                else if (element.Name == "educations")
                {
                    i = 1;

                    foreach (var child in element.Elements())
                    {
                        if (child.Name == "education")
                        {

                            txt = new TextBox();
                            txt.ID = "tbEducations" + i;
                            txt.Width = 200;
                            txt.Visible = true;
                            txt.ReadOnly = true;
                            txt.Text = child.Element("school-name").Value;
                            form1.FindControl("divMoreEducations").Controls.Add(txt);
                            i++;
                        }
                    }
                }

            }
        }

我的问题是,如果我想使用之前生成的文本框,C#会识别它吗?因为我生成的控件没有runat服务器属性。

谢谢。

2 个答案:

答案 0 :(得分:2)

  

如果我想使用之前生成的文本框,那么C#会不会   认出来了吗?因为我生成的控件没有runat   服务器属性。

您不必指定runat="server",因为从后面的代码中您将创建服务器端控件。 runat="server"页面上使用aspx来标识服务器端控件。

要找到它,您需要确保这些控件在帖子后面可用。你可以找到他们,就像你在form1找到你的div一样。使用Page.FindControl

答案 1 :(得分:0)

是的,它会..你可以使用像

这样的附加控件
TextBox txt = (TextBox )Page.FindControl("tbSkills0");