从Table值创建DataGridView列

时间:2010-04-22 14:59:07

标签: vb.net

我在Windows窗体独立应用程序中使用数据网格视图在VB.NET中将项目显示为excel电子表格。我有一个名为CostTypes的表,列名为[CostTypeID,CostType],值为[1,外部]和[2,内部](这些是常量,但可以向表中添加更多值)。

我想在DataGridView 中创建名称为[External,Internal]的列。如果我直接使用数据绑定,我会得到[CostTypeID,CostType]列,这不是我想要的。

如果有人可以解释如何在运行时在datagridview中创建列,或者如何使用LINQ从数据库中检索数据,那么[External,Internal]就会变成很棒的列。

提前致谢。

3 个答案:

答案 0 :(得分:0)

您可以使用listView显示一行中的项目

像这样的东西

 <asp:ListView ID="NewsLV" runat="server">
    <ItemTemplate>
      <td id="Td1" runat="server" valign="top" style="width: 33%;">
        <asp:Label ID="titleLabel" runat="server" Text='<%# Eval("CostType") %>' CssClass="GridTitle" />
        <br />
        <div style="padding: 2px;">
          <asp:Label ID="descriptionLabel" runat="server" Text='<%# Eval("CostTypeID") %>'
            Font-Size="X-Small" />
        </div>
      </td>
    </ItemTemplate>
    <LayoutTemplate>
      <table id="Table1" runat="server" border="0" style="">
        <tr id="itemPlaceholderContainer" runat="server">
          <td id="itemPlaceholder" runat="server">
          </td>
        </tr>
      </table>
    </LayoutTemplate>
  </asp:ListView>

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以做的是创建一个Sub,为您创建列。当你这样做时,你有很多控制权。这是一个例子:

With DataGridView1
       .AutoGenerateColumns = False

        Dim columnCostType As New DataGridViewTextBoxColumn
        With columnCostType
             .HeaderText = "Cost Type"
             .DataPropertyName = CustomObject.CostType
             .Name = CustomObject.CostType
        End With
        .Columns.Add(columnCostType)
End With