我需要公開一些輸入字段,這些輸入字段是基於我在程序集中爲特定類型找到的屬性。用C#構建動態用戶界面?
我不確定這種方法有多常見。也許有更簡單的方法。也許在客戶端而不是服務器端。
如果有人知道這樣做的好方法,我將不勝感激。
相應地創建輸入控件並簡單地將控件添加到某個div容器?我不確定它是否會比這更復雜。 我需要以某種方式添加CSS類到控件,因爲我建立它們,所以他們得到很好地放置;這可能會變得棘手。
我需要公開一些輸入字段,這些輸入字段是基於我在程序集中爲特定類型找到的屬性。用C#構建動態用戶界面?
我不確定這種方法有多常見。也許有更簡單的方法。也許在客戶端而不是服務器端。
如果有人知道這樣做的好方法,我將不勝感激。
相應地創建輸入控件並簡單地將控件添加到某個div容器?我不確定它是否會比這更復雜。 我需要以某種方式添加CSS類到控件,因爲我建立它們,所以他們得到很好地放置;這可能會變得棘手。
我最終利用jQuery。
我制定了一個簡單的標記,其中包含我需要的基本佈局。
爲了動態創建控件,我使用jQuery方法在javascript中完成了所有操作。
這當然要求您將一些數據集足夠智能地返回到UI以呈現它。
當然,雖然這不是C#,但我發現這是一個更好的方法。 – topwik 2009-11-03 16:51:46
這聽起來像標準的asp.net開發。任何好的教程都應該能夠幫助你。對於asp服務器控件,使用CssClass屬性來設置控件的類。
這是W3C Schools的asp.net tutorial。
一致認爲,網絡編程的重點是基於某些條件呈現動態控件。 – 2009-10-26 23:44:52
我假設你將使用反射來找出實體具有的屬性,然後你會根據屬性的類型創建一個輸入字段。你將不得不動態創建控制來處理後面代碼中的輸入。確保你給這個控制和ID。您將不得不在郵件後面重新創建這些控件。這看起來像我的動態屬性編輯器。可能有一些免費的,谷歌的。
如果UI不必是完全動態的,您可以在標記中包含所有控件,並將任何可選項設置爲Visible =「false」。然後,選擇性地在代碼隱藏中啓用適當的控件。例如:
Default.aspx的
<asp:Button ID="EvenButton" runat="server" Text="Even" Visible="false" />
<asp:Button ID="OddButton" runat="server" Text="Odd" Visible="false" />
Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
String msg = "A message to count";
if (msg.Length % 2 == 0)
{
// Enable the Even Button
EvenButton.Visible = true;
}
else
{
OddButton.Visible = true;
}
}
這種方法的好處是,你可以在標記很容易打下的事情了用適當的CSS。另一方面,如果你的UI比這更動態,你可能需要在代碼隱藏中動態創建控件,並通過調用Controls.Add()將它們添加到頁面中。然而,這種方式很難佈局。而且你必須處理一些事情,比如每次回發時重新連線任何事件處理程序。
希望有所幫助。
你在使用什麼服務器端語言? – Sampson 2009-08-18 16:10:20
我正在用C#語言........ – topwik 2009-08-18 16:14:22
@Jonathan Sampson:同意。任何服務器端語言都會執行@towps想要做的事情......但是100%的語言依賴性如何。 – Randolpho 2009-08-18 16:14:25