2012-01-05 60 views
0

假設我有一個datagridview,並且datagridview有一個DataGridViewComboBoxColumn。 我有國家名稱和代碼填充datagridview組合框列。從DataGridViewComboBoxColumn中選擇值和文本c#

所以現在我想,當我閱讀for循環datagridview單元格值,然後我想要獲得DataGridViewComboBoxColumn選定的值和文本。我無法獲取值,但無法從for循環中的DataGridViewComboBoxColumn獲取顯示文本。

如果有可能,那麼plzz幫助我的小代碼。

private void button1_Click(object sender, EventArgs e) 
    { 
     for (int i = 0; i <= dgList.Rows.Count - 1; i++) 
     { 
      DataGridViewComboBoxCell cell = dgList.Rows[i].Cells[0] as DataGridViewComboBoxCell; 
      int index = cell == null || cell.Value == null ? -1 : cell.Items.IndexOf(cell.Value); 
      string strVal = cell.Value.ToString(); 
     } 
    } 

感謝

+0

如何你是否將值綁定到組合框? – V4Vendetta 2012-01-05 11:18:08

回答

1

可以嘗試訪問像FormattedValueValue的價值觀,這應該給你的兩個值。

我曾嘗試使用Dictionary<string,string>作爲DataSource並使用上述屬性我能夠得到這兩個值。

+0

感謝FormattedValue給文本和值給予的價值。有用。 – Thomas 2012-01-05 12:09:41

+0

好..記得標記爲答案 – V4Vendetta 2012-01-05 12:54:03

0

試試這個:

for (int i = 0; i <= dgList.Rows.Count - 1; i++) 
     { 
     string strval=((ComboBox)(dgList.Rows[i].cells[0].FindControl("ComboBox1"))).SelectedValue; 
     } 
+0

我不是在談論asp.net。我正在與Windows應用程序與C#。所以我正在使用datagridview。 FindControl不在那裏。您是否在win應用程序中測試了ur代碼。 – Thomas 2012-01-05 12:07:32

+0

對不起!它的一個錯誤 – Vinod 2012-01-05 12:10:57

0

你不能只將值轉換爲預期的類型?

嘗試這種情況:

dgList [ 「COLUMNNAME」 和rowIndex]。價值

例如

Convert.toInt32(dgList [ 「COLUMNNAME」 和rowIndex]。價值)