是否可以将未绑定的列插入绑定的datagridview?

时间:2014-06-16 21:20:00

标签: sql vb.net datagridview datagridviewcombobox

我有一个datagridview,绑定到数据并运行swell。两列中的数据是整数,但它们的含义我希望表单用户可以看到。

Column 1       Column 2       Column 3       Column 4
_____________________________________________________
Bob            1              2               Yes
Mary           1              3               No
Tod            2              2               No
Beth           3              3               Yes

其中1,2和3类似于工作技能。所以我想隐藏第2列和第3列并从SQL中来回解释。

Column 1       Column 2       Column 3       Column 2a        Column 3a        Column 4
_______________________________________________________________________________________
Bob            1              2              Accounting      Admin            Yes
Mary           1              3              Accounting      Manager          No
Tod            2              2              Architect       Admin            No
Beth           3              3              IT              Manager          Yes

只想象第2列& 3是隐藏的,也许是2a& 3a是组合框,它们后面有代码,可以将字符串转换为整数。

项目太大,无法修复它以便首先使用字符串。我对其他建议持开放态度,例如make Columns 2& 3个组合框,它们都是基于另一个SQL命令的数据绑定和功能。我看不出它会如何起作用。

2 个答案:

答案 0 :(得分:2)

来自Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET

  

填充未绑定的内容有两种主要方法   列:处理RowsAdded事件或处理CellFormatting   事件。前者是设置细胞价值的好地方   以后可用于编程检索。后者是个好地方   提供仅用于显示目的的值   不会存储为网格单元保留的数据的一部分   采集。 CellFormatting事件也可用于转换   它们在单元格中显示的值与不同的值不同   实际存储在网格后面的数据中的值。

答案 1 :(得分:1)

是的,这是可能的。

首先设置 AutoGenerateColumns =“False”,然后添加 TemplateFields

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
    <Columns>
        <asp:boundfield datafield="Column1"  HeaderText="Column 1"  SortExpression="Column1"/>
        <asp:boundfield datafield="Column2"  HeaderText="Column 2"  SortExpression="Column2"/>
        <asp:TemplateField HeaderText="Column 4">
            <ItemTemplate>    
               <asp:CheckBox ID="CheckBox1" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:boundfield datafield="Column3"  HeaderText="Column 3"  SortExpression="Column3"/>
    </Columns>
</asp:GridView>

然后,您可以在 GridView1_RowDataBound 方法中更改每个TemplateFields的值。