我在c#上使用datagridview并使用数据源对象提供它。如果AutoGenerateColumns
为true
,则一切正常,所有列都会生成其内容。但是我想只显示第一列,并使用第一列工具提示的其余列上的信息。
我尝试将AutoGenerateColumns
设置为false
并创建了一个名为AutoGenerateColumns
true
时添加的第一列的列,但是当我执行此操作时没有添加任何行
做正确的方法是什么?
更新
在我要隐藏的所有字段上方添加[Browsable(false)]
工作:)
现在,我如何使用“隐藏”列中的数据并将它们用于第一列单元格工具提示?
答案 0 :(得分:3)
您可以在单元格格式化事件中执行此操作。这是msdn。
的代码片段// Sets the ToolTip text for cells in the Rating column.
void dataGridView1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
if ( (e.ColumnIndex == this.dataGridView1.Columns["Rating"].Index)
&& e.Value != null )
{
DataGridViewCell cell =
this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (e.Value.Equals("*"))
{
cell.ToolTipText = "very bad"; // you can get the value from your other cells using the above technique with .value instead of .index
}
else if (e.Value.Equals("**"))
{
cell.ToolTipText = "bad";
}
else if (e.Value.Equals("***"))
{
cell.ToolTipText = "good";
}
else if (e.Value.Equals("****"))
{
cell.ToolTipText = "very good";
}
}
}
答案 1 :(得分:0)
我认为你需要的是这样的:
<asp:GridView ID="gridStatus" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSourceForStatusGrid">
<Columns>
<asp:BoundField DataField="ID" Visible =false />
<asp:BoundField DataField="StudentName" HeaderText="Name" SortExpression="StudentName" />
这样你就可以在那里找到列,你可以使用Grid.Rows [selectedRow] .Cells [index] .....来回溯它。