我有一個gridview並基於每一行的數據類型,我想顯示一個文本框或列表框。GridView中的列表框或文本框
如何根據GridView每行的數據類型顯示列表框或文本框。
Obs *我使用devexpress控件,所以我會接受這兩個答案,對於Windows窗體標準控件或devexpress套件。
謝謝大家。
我有一個gridview並基於每一行的數據類型,我想顯示一個文本框或列表框。GridView中的列表框或文本框
如何根據GridView每行的數據類型顯示列表框或文本框。
Obs *我使用devexpress控件,所以我會接受這兩個答案,對於Windows窗體標準控件或devexpress套件。
謝謝大家。
,你可以很可能利用內置的事件之一在Designer中(如ShowingEditor),並通過從事件的參數中獲取行的句柄來檢查行的類型。然後你可以找出你的類型在這裏,並創建一個新的Listbox或Textbox實例。你可以閱讀更多的文檔在這裏:
Dev Express ShowingEditor Event Docs
如果你想做到這一點的代碼,初始化你的看法後,你可以把你的GridView和做這樣的事情(在C#):
this.myGridView.ShowingEditor += (sender, args) =>
{
var gridView = sender as GridView;
if(null != gridView)
{
var currentRowHandle = gridView.FocusedRowHandle;
var currentType = gridView.Rows[currentRowHandle].GetType();
if(currentType == typeof(TypeA))
{
//Make a ListBox
}
if(currentType == typeof(TypeB))
{
//Make a TextBox
}
}
}
顯然還有更多的代碼要寫在這裏,但我認爲這會讓你開始。
Omg,這個社區很瘋狂,我正在閱讀你之前發佈的答案,然後你在我的問題中展示了正確的答案,令人難以置信。 感謝您的幫助。不明白爲什麼我的問題值得消極投票。 –
你的問題我也不清楚在所有,但也許你有一個自定義行類型,並試圖做這樣的事情
public class ListBoxRow : Row {}
public class TextBoxRow : Row {}
List<Row> rows = new List<Row>(){new ListBoxRow(), new TextBoxRow()}
foreach (Row r in rows)
{
If (r is ListBoxRow) {//Create ListBox }
If (r is TextBoxRow) {//Create TextBox }
}
這是類似的東西,我會稍後嘗試此代碼(現在工作),併發布結果,在此先感謝。 –
你有一些代碼可以顯示你所嘗試的嗎?你是什麼意思_data類型在每一行_? – Harrison
還沒有任何編碼。關於數據類型,您可以使用A型和B型作爲示例,因爲我稍後會定義它們。在這個例子中,A類是A類,B類是B類。 –
爲什麼我會得到負面評價? –