【问题标题】:Dynamically create textbox based on amount of strings in array根据数组中的字符串数量动态创建文本框
【发布时间】:2013-01-10 12:50:31
【问题描述】:

我正在遍历一个字符串数组。

对于每个字符串,我需要将其显示在网页上的新文本框中。

我只有一个可用的文本框来完成这项工作,但这只是一个概念证明。我的问题是我现在正在处理更大的数组,字符串数量不等。

有没有一种方法可以根据字符串的数量在页面上动态创建文本框?

这是我目前所拥有的-

     protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
     {
        WebService1 ws = new WebService1();

        foreach (string x in ws.mRETURN(CheckBoxList1.SelectedItem.Text))
        {

            TextBox1.Text = x;

        }  
     }

所以页面上已经存在第一个文本框,但是我知道它需要取决于从 Web 服务传递的字符串数量,并将此数字与所需的文本框数量相关联。

【问题讨论】:

    标签: c# asp.net arrays web-services textbox


    【解决方案1】:

    试试这个

    标记

    <asp:DataList runat="server" ID="repeatedTextBox">
    <ItemTemplate>
      <asp:TextBox ID="myTextBox" runat="server" Text='<%# Container.DataItem.ToString() %>'></asp:TextBox>
    </ItemTemplate>
    </asp:DataList>
    

    代码隐藏

    repeatedTextBox.DataSource = myChangingArrayOfString;  //e.g ws.mRETURN(CheckBoxList1.SelectedItem.Text)
    repeatedTextBox.DataBind();
    

    【讨论】:

      【解决方案2】:

      如何在网页上使用占位符并以编程方式向其中添加控件(文本框)。

      <asp:PlaceHolder id="Area1" runat="server"></asp:PlaceHolder></P>
      

      然后在你的后端添加:

      TextBox tbx = new TextBox();
      Area1.Controls.Add(tbx);
      

      在循环中你能做到吗? 我还在学习,所以这是我现阶段最好的建议。

      来源:Source

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-03
        • 2013-02-11
        • 2014-08-31
        • 1970-01-01
        • 1970-01-01
        • 2012-02-15
        • 1970-01-01
        • 2019-01-29
        相关资源
        最近更新 更多