是否可以将未绑定的列插入绑定的datagridview?
Posted
技术标签:
【中文标题】是否可以将未绑定的列插入绑定的datagridview?【英文标题】:Is it possible to insert unbound column into a bound datagridview? 【发布时间】:2014-06-16 21:20:00 【问题描述】:我有一个 datagridview,绑定到数据并运行良好。两列中的数据是整数,但它们的含义是我希望表单用户看到的。
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 是组合框,它们背后有将字符串转换为整数的代码。
项目太大,无法修复它以首先使用字符串。我愿意接受其他建议,例如制作 Columns 2 & 3 组合框,这些组合框既是数据绑定的,又是基于另一个 SQL 命令的函数。但我看不出它是如何工作的。
【问题讨论】:
【参考方案1】:来自Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET:
有两种主要的方式来填充 unbound 的内容 列:处理
RowsAdded
事件或处理CellFormatting
事件。前者是设置单元格值的好地方 以后可用于程序化检索。后者是个好地方 提供一个仅用于显示目的的值,并且 不会存储为网格单元保留的数据的一部分 收藏。CellFormatting
事件也可用于转换 值,因为它们在单元格中呈现为不同于 实际存储在位于网格后面的数据中的值。
【讨论】:
听起来像一个巧妙的解决方案。我会调查的。m_CustomersGrid.CellFormatting += OnCellFormatting;
m_CustomersGrid.RowsAdded += OnRowsAdded;
如何在 VB.net 中执行此操作?我不认识这个。
@ZL1Corvette 不是事件处理程序***.com/questions/12242628/…【参考方案2】:
是的,这是可能的。
先设置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 方法期间更改每个 TemplateField 的值。
【讨论】:
以上是关于是否可以将未绑定的列插入绑定的datagridview?的主要内容,如果未能解决你的问题,请参考以下文章