gpt4 book ai didi

c# - 将 DataTable 绑定(bind)到 GridView 的模板字段

转载 作者:行者123 更新时间:2023-11-30 22:05:20 24 4
gpt4 key购买 nike

我可以通过自动生成列成功地将 DataTable 绑定(bind)到 GridView,但我需要为其中一列显示多行单元格。为此,我想将模板字段与使用 TextBox 对象的项目模板结合使用。我通过添加列然后添加行来填充数据表。我知道我的数据表设置正确,因为它显示了我想要的所有数据(多行单元格除外)。我的问题是让 gridview 根据列名提取我的数据并填写我设置的模板字段。如果我关闭 AutoGenerateColumns,那么 4 个模板字段列仍然出现(根据数据表也显示正确的数量),只是空白,如果我将它设置为 true,那么 4 个空白列以及 4 个附加列出现包含我的数据的相同标题使用单元格包含的默认值来显示信息。

    <asp:GridView ID="DataGrid1" runat="server" AutoGenerateColumns="False"     HeaderStyle-BorderStyle="None" CellPadding="3" ItemStyle-Wrap="true" >
<Columns>
<asp:TemplateField HeaderText="Code">
<asp:ItemTemplate>
<asp:Label ID="txtCode" runat="server" Text='<%# Eval("Code") %>'>

</asp:Label>
</asp:ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Title">
<asp:ItemTemplate>
<asp:Label ID="txtTitle" runat="server" Text='<%# Eval("Title") %>'>

</asp:Label>
</asp:ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Class">
<asp:ItemTemplate>
<asp:Label ID="txtClass" runat="server" Text='<%# Eval("Class") %>'>

</asp:Label>
</asp:ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="History">
<asp:ItemTemplate>
<asp:TextBox ID="txtHistory" runat="server" IsReadOnly="true" Text='<%# Eval("History")%>'>
</asp:TextBox>
</asp:ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

以上是我的 asp.net 代码中与相关 GridView 相关的部分。以下是我如何设置我的 DataTable 并绑定(bind)它。

DataTable table = new DataTable();
table.Columns.Add("Code", typeof(string));
table.Columns.Add("Title", typeof(string));
table.Columns.Add("Class", typeof(string));
table.Columns.Add("History", typeof(string));
for (int i = 0; i < index; i++)
{
table.Rows.Add(docs[i].Code, docs[i].Name, docs[i].Class.Name, history[i]);
}
DataGrid1.DataSource = table;
DataGrid1.DataBind();

最佳答案

像下面这样更改 .aspx 代码

  <Columns>
<asp:TemplateField HeaderText="Code">
<ItemTemplate>
<asp:Label ID="txtCode" runat="server" Text='<%# Eval("Code") %>'>

</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Title">
<ItemTemplate>
<asp:Label ID="txtTitle" runat="server" Text='<%# Eval("Title") %>'>

</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Class">
<ItemTemplate>
<asp:Label ID="txtClass" runat="server" Text='<%# Eval("Class") %>'>

</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="History">
<ItemTemplate>
<asp:TextBox ID="txtHistory" runat="server" IsReadOnly="true"
Text='<%# Eval("History")%>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>

关于c# - 将 DataTable 绑定(bind)到 GridView 的模板字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com