将String Array添加到listView Row Control C#asp.net

时间:2012-02-01 19:21:27

标签: c# asp.net listview

这是我第一次尝试asp.net和webforms,windowsforms,所有这些。我最初在列表框中填充数据,但我只能得到一列,并认为listView听起来像它会做我想要的。

我发现最有希望的解决方案是:

    DataSet listData = new DataSet();
    CancellationsControls cancelCtrl = new CancellationsControls();
    listData = cancelCtrl.GetScheduledReleaseDataSet();

    DataTable dtable = listData.Tables[0];

    scheduledReleasesTag.Items.Clear();
    foreach (DataRow row in dtable.Rows)
    {
        string[] ar = Array.ConvertAll(row.ItemArray, p => p.ToString());
        scheduledReleasesTag.Items.Add(new ListViewDataItem(ar));
    }

dtable是连接多个表的查询的自定义表。

在foreach循环中,ar字符串数组成功地显示了我想要的数据列,但ListViewDataItem需要两个int参数而不是字符串数组,就像我从中提取的那样。

我试图找出更多有关listView控件如何工作的信息,但这与我能够获得的任何内容一样接近。任何有关解释的帮助都将非常感激。

谢谢:)

1 个答案:

答案 0 :(得分:2)

我是asp的初学者,但要将ListView控件与数据绑定,这样的smth应该可以工作:

DataSet listData = new DataSet();
CancellationsControls cancelCtrl = new CancellationsControls();
listData = cancelCtrl.GetScheduledReleaseDataSet();

DataTable dtable = listData.Tables[0];
ListView1.DataSource = dtable;
ListView1.DataBind();

现在我们必须创建一个ItemTemplate。您的ListView控件应如下所示:

<asp:ListView ID="ListView1" runat="server">
       <ItemTemplate>
      <tr id="Tr1" class="item" runat="server">
        <td>
          <asp:Label ID="column_name" runat="server" Text='<%# Eval("column_name") %>' />
        </td>
        </tr>
        <tr id="Tr2" class="item" runat="server">
        <td>
          <asp:Label ID="another_column_name" runat="server" Text='<%# Eval("another_column_name") %>' />
        </td>
        </tr>
        </ItemTemplate> 
</asp:ListView>

只需将包含列名称的标记(column_name,another_column_name)替换为包含要显示的数据。此模板逐个显示两列中的行对值。