【发布时间】:2024-01-07 23:51:02
【问题描述】:
我需要创建一个动态网格视图,列数是可变的。 我试图更好地解释自己..
我必须创建一个表,其中包含每家酒店的一列,并在各行中包含每月的日期以及为每家酒店预订的相关人员。 示例:
- |日期| 1号酒店 | 2号酒店|
- |2021-09-01| 100| 90|
- |2021-09-02| 102| 92|
对于我在数据库中保存了他可以查看的酒店的每个用户,所以我必须创建一个包含动态创建的列的 datagridview。 我想在预订人数中显示一个超链接,这样如果您点击它,它会打开一个包含预订详细信息的页面,并传递当天和酒店的数据
由于 ID 和 DAY 列会一直存在,所以我想不是动态创建它们,而是将它们写在代码中
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
AllowPaging="True" Width="100%" AllowSorting="True" class="table table-hover table-striped">
<AlternatingRowStyle BackColor="#DFDFDF" />
<PagerStyle ForeColor="#3a4f63" HorizontalAlign="Right" BackColor="#C6C3C6"></PagerStyle>
<Columns>
<asp:BoundField DataField="id" HeaderText="Id" InsertVisible="False" ReadOnly="True"
ShowHeader="False">
<ItemStyle Width="50px" />
</asp:BoundField>
<asp:BoundField DataField="giorno" HeaderText="Giorno" InsertVisible="False" ReadOnly="True"
ShowHeader="False">
<ItemStyle Width="50px" />
</asp:BoundField>
</Columns>
</asp:GridView>
我用第一列 id 和 day 初始化我的 DataTable dt
Dim dt As New DataTable
dt.Columns.Add("id")
dt.Columns.Add("day")
在查找要显示的酒店的查询中,我将超链接列添加到 datagridview
dt.Columns.Add(dr("hotel"))
Dim tfield As New HyperLinkField()
tfield.HeaderText = dr("hotel")
tfield.NavigateUrl = "info_booking.aspx?ID={0}"
tfield.Text = "11" 'IF I OMIT THE LINE, I DO NOT DISPLAY ANYTHING
GridView1.Columns.Add(tfield)
现在我做一个循环,在其中填充酒店和预订的行,并将数据添加到 DataTable,如下所示
...
dt.Rows.Add("1", "01/07/2021", "100", "90")
dt.Rows.Add("2", "02/07/2021", "102", "92")
...
GridView1.DataSource = dt
GridView1.DataBind()
如果我省略该行,我会遇到以下问题
tfield.Text = "11" 'IF I OMIT THE LINE, I DO NOT DISPLAY ANYTHING
datagridview的组成如下
- |日期| 1号酒店 | 2号酒店|
- |2021-09-01| | |
- |2021-09-02| | |
另一方面,如果我写下一行并分配任何值,例如 11,我在所有行上都显示 11,即
- |日期| 1号酒店 | 2号酒店|
- |2021-09-01| 11 | 11 |
- |2021-09-02| 11 | 11 |
我想了解如何修改每一行和每一列的超链接中要传递的文本和参数。
我希望我已经足够清楚了。
谢谢
【问题讨论】:
标签: asp.net dynamic datagridview