这是我第一次尝试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控件如何工作的信息,但这与我能够获得的任何内容一样接近。任何有关解释的帮助都将非常感激。
谢谢:)
答案 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)替换为包含要显示的数据。此模板逐个显示两列中的行对值。