我需要公开一些输入字段,这些输入字段是基于我在程序集中为特定类型找到的属性。用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