我有一个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命令的数据绑定和功能。我看不出它会如何起作用。
答案 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的值。