首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成datalist次数

生成datalist次数
EN

Stack Overflow用户
提问于 2014-02-11 19:40:08
回答 2查看 266关注 0票数 2

我在page和DataList上有一个文本框。

现在,当用户在文本框中输入任意整数并单击按钮时,将多次生成相同的数据列表。

例如,如果用户输入5,那么datalist将生成5次。datalist包含相同的数据。

我不知道该怎么做?请帮我解决这个问题。

代码语言:javascript
复制
<asp:TextBox ID="txtNumber" runat="server"> -> 3

然后它将Datalist生成为:

代码语言:javascript
复制
<asp:DataList ID="dl" runat="server"></asp:DataList>
<asp:DataList ID="dl" runat="server"></asp:DataList>
<asp:DataList ID="dl" runat="server"></asp:DataList>

因此,如果用户输入示例5,我希望复制5次DataList

EN

回答 2

Stack Overflow用户

发布于 2014-02-11 19:50:39

使用中继器,每一项都是DataList

代码语言:javascript
复制
<asp:Repeater id="Repeater1" runat="server">
      <HeaderTemplate>
         <table>
      </HeaderTemplate>

      <ItemTemplate>
         <tr>
            <asp:DataList ID="dl" runat="server" DataSource = '<%# DataBinder.Eval(Container.DataItem, "MyCollectionProperty") %>' />
         </tr>
      </ItemTemplate>

      <FooterTemplate>
         </table>
      </FooterTemplate>

</asp:Repeater>

然后,当用户输入示例10时,生成10个项目,每个项目包含需要显示的项目集合(示例中的MyCollectionProperty属性),并将10个项目的数组分配给中继器数据源

票数 0
EN

Stack Overflow用户

发布于 2014-02-13 17:56:27

看起来你会动态生成DataList。如果DataList将包含相同的数据,那么您只能创建一个您熟悉的数据源。

对于我的示例,我将使用SqlDataSource作为我的数据源,并将其共享给其他DataLists。如果您为DataList创建了一个模板(如my dtlTemplate),还定义了<ItemTemplate>元素,则会更简单。

代码语言:javascript
复制
<form id="form1" runat="server">
<asp:TextBox ID="txtNumber" runat="server">
<asp:Button ID="btnOK" runat="server" Text="Button" OnClick="btnOK_Click"/><br />

<asp:DataList Visible="false" ID="dtlTemplate" runat="server" DataKeyField="id" 
    DataSourceID="dataSource" Width="845px">
    <ItemTemplate>
       id:<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' /><br />
       name:<asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>' /><br />
    </ItemTemplate>
</asp:DataList>

<asp:SqlDataSource ID="dataSource" runat="server" 
     ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" 
     SelectCommand="SELECT * FROM [Table]"></asp:SqlDataSource>
</form>

在你的按钮点击处理程序应该是这样的:

代码语言:javascript
复制
protected void btnOK_Click(object sender, EventArgs e)
{
    int number = int.Parse(txtNumber.Text == "" ? "0" : txtNumber.Text);
    for (int i = 0; i < number; i++)
    {
        //Create new DataList with copying ItemTemplate from dtlTemplate
        DataList dtl = new DataList();
        dtl.ID = "dtl" + i;
        dtl.ItemTemplate = dtlTemplate.ItemTemplate;

        //Add new DataList to form1 (parent control)
        form1.Controls.Add(dtl);

        //Set the same data source with dtlTemplate to new DataList
        dtl.DataSourceID = dtlTemplate.DataSourceID;
        dtl.DataBind();
    }
}

我希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21700814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档