2009-12-11 32 views
0

我有一個主要用於管理數據的ASP.NET webforms站點。其中一個表基本上有名稱/值(字符串/字符串)數據(沒有類型信息,只是字符串)。用於處理名稱 - 值數據的ASP.NET(webforms)控件

我想製作一個頁面,它可以動態地爲每個記錄加載一張控制表(帶有名稱標籤,文本框用於字符串/ nubmer,或CheckBoxes用於值爲「true 「或」假「 - 我會假設它是布爾型的。)

是否有任何內置的控件可以輕鬆地做到這一點?如果不是 - 如果我想動態加載標籤和文本框/複選框到要顯示的集合中,什麼是一個好的控件用於集合(例如DataGrid,Repeater等)

回答

0

嘗試DataList控件。它爲您提供了很多格式化的靈活性。 如果你看到它在任何地方都被使用,你也可以編寫一個用戶控件。實際上,如果可重用性很重要,那麼您的DataList可以位於用戶控件內。

1

我更喜歡使用標準的ASP.Net ListView控件,主要是因爲它不比Repeater控件複雜得多,但ListView可以支持數據分頁。但是,如果您需要按列排序結果,則可能需要查看GridView控件。

1

你可以用這樣的東西動態地建立列表。如果該值看起來像一個使用TryParse的bool,它將呈現一個CheckBox,否則它會將該值放入一個TextBox中。

foreach (var item in data) 
{ 
    var controls = ListPlaceholder.Controls; 

    // Add the label 
    var label = item.Key; 
    controls.Add(new LiteralControl(label)); 

    var value = item.Value.ToString(); 

    bool boolVal; 
    if (bool.TryParse(value, out boolVal)) 
    { 
     // Looks like a bool so render CheckBox 
     controls.Add(new CheckBox { Checked = boolVal }); 
    } 
    else 
    { 
     // General data so render TextBox 
     controls.Add(new TextBox { Text = value }); 
    } 

    // Line break 
    controls.Add(new LiteralControl("<br />")); 
} 
+0

這就是我在想什麼。我希望能有一個很好的方法來做到這一點,但這很簡單,容易理解 – 2009-12-11 22:23:04

相關問題