Как манипулировать столбцами datagridview при использовании DataSource? - PullRequest
1 голос
/ 27 апреля 2011

Я использую datagridview на c # и кормлю его объектом источника данных.Если AutoGenerateColumns равно true, все работает нормально, и все столбцы генерируются с их содержимым.Но я хочу отобразить только 1-й столбец и использовать информацию об остальных столбцах для всплывающей подсказки 1-го столбца.

Я попытался установить AutoGenerateColumns в false и создал столбец с именем, подобным 1-мустолбец добавляется, когда AutoGenerateColumns равен true, но при этом не добавляются строки.

Как правильно это сделать?

Обновление: Добавление [Browsable(false)] над всеми полями, которые я хочу скрыть, работает:)

Теперь, как я могу использовать данные из «скрытых» столбцов и использовать их для всплывающих подсказок для ячеек 1-го столбца?

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Вы можете сделать это в событии форматирования ячейки. Вот фрагмент кода из 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";
        }
    }
}

Подробнее здесь

0 голосов
/ 27 апреля 2011

Я думаю, что вам нужно что-то вроде этого:

<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] .....

...