如何将datagrid列作为来自Windows移动应用程序中的数据库的HyperLink?

时间:2011-07-14 10:53:55

标签: windows-mobile c#-3.0

在Windows移动应用程序中,我有DataGrid控件,可在page_load上显示来自Database的数据。  我希望DataGrid列作为HyperLink,以便MessageBox或其他窗口Form打开并显示所选DatGrid列的详细内容。

1 个答案:

答案 0 :(得分:0)

您可以捕获点击事件并使用列的内容打开您的网址

如果您有一个包含三个列的表,每个列都包含一个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());
        }
    }