Как сделать столбец таблицы данных как HyperLink из базы данных в приложении для Windows Mobile? - PullRequest
0 голосов
/ 14 июля 2011

В приложении для Windows Mobile у меня есть DataGrid элемент управления, который отображает данные из Database на page_load.Я хочу, чтобы столбец DataGrid действовал как HyperLink, так что MessageBox или другое окно Form откроются и отобразят подробные данные выбранного столбца DatGrid.

1 Ответ

0 голосов
/ 14 июля 2011

Вы можете просто захватить событие клика и использовать содержимое столбца, чтобы открыть свой веб-адрес

Если у вас была таблица с тремя столбцами, каждый из которых содержал URL.

    DataTable dataTable = new DataTable();
    dataTable.Columns.Add("Website1", typeof(String));
    dataTable.Columns.Add("Website2", typeof(String));
    dataTable.Columns.Add("Website3", typeof(String));

    DataRow dr = dataTable.NewRow();
    dr["Website1"] = "http://www.bbc.co.uk";
    dr["Website2"] = "http://www.ebay.co.uk";
    dr["Website3"] = "http://www.google.co.uk";
    dataTable.Rows.Add(dr);

    dataGrid1.DataSource = dataTable;

Затем вы можете использовать это как гиперссылку

    private void dataGrid1_Click(object sender, EventArgs e)
    {
        int rowNumber = dataGrid1.CurrentCell.RowNumber;
        int columnNumber = dataGrid1.CurrentCell.ColumnNumber;

        System.Diagnostics.Process.Start("iexplore.exe", 
                       dgSites[rowNumber, columnNumber].ToString());
    }

Если вы хотите, чтобы ваша ссылка запускалась только в определенном столбце, просто учтите это, проверив номер столбца.

    private void dataGrid1_Click(object sender, EventArgs e)
    {
        int rowNumber = dataGrid1.CurrentCell.RowNumber;
        int columnNumber = dataGrid1.CurrentCell.ColumnNumber;

        if (columnNumber == 2)
        {
          System.Diagnostics.Process.Start("iexplore.exe", 
                       dgSites[rowNumber, columnNumber].ToString());
        }
    }

Из вашего вопроса немного неясно, чего именно вы хотите достичь, но если вы просто хотите показать элемент в окне сообщения ...

    private void dataGrid1_Click(object sender, EventArgs e)
    {
        int rowNumber = dataGrid1.CurrentCell.RowNumber;
        int columnNumber = dataGrid1.CurrentCell.ColumnNumber;

        if (columnNumber == 2)
        {
          MessageBox.Show(dgSites[rowNumber, columnNumber].ToString());
        }
    }
...