2012-09-03 19 views
2

什么是从代码隐藏动态创建表的最佳方式,其中从存储过程中检索数据(SQL 2008)? 如果我使用HtmlTable而不是asp.net表,它会有所作为吗? 感谢帮助!asp.net在代码隐藏中在HtmlTable上显示存储过程结果

+0

你还会在HtmlTable/Asp.net表中进行修改吗?我的意思是编辑/删除功能将在那里?你打算在单个页面中显示数据还是使用分页? – testing

+0

只显示数据,不编辑/删除等,没有分页,因为每张表上只显示少量数据 – malvina

回答

0

既然你提到你想让它变得简单,那么GridView是最好的选择。是的,你可以使用HTML表格,但它会更多的工作。

我想提到另一种方法。你也可以用中继器制作html表格。我发现了一个样本,你在这里:

ASP.NET Web Form Repeater

如果你稍微向下滚动,你会看到一个表的一个例子。

这也很简单,因为你可以像伊卡洛斯显示的那样绑定到中继器,但是你也可以更直观地控制html。

+0

谢谢,我创建了一个简单的html表格,虽然没有中继器。 – malvina

0

最好使用GridViewSqlDataSource,你会意识到生产力的提高,你已经为此创建了基础设施。

链接:http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.sqldatasource.selectcommand.aspx

+0

感谢您的及时回复!由于我只需显示少量数据(<10),因此我想使用更简单,重量更轻的内容。 – malvina

+0

我推荐你使用GridView和SqlDataSource,因为用Htmltable开发它很费力,也许你在java中开发所以你想做同样的工作,但是我建议你使用GridView,因为将来你可以很容易地开发Update或者Delete或编辑,如果你有问题,你会发现alwas人谁可以带回答 –

+0

@Candie这是10奇数记录的问题。为什么'GridView'?为什么不用'Repeater'?或者为什么不'代码Behind'一个简单的迭代使用''

是 – testing

0

,最好的办法是简单地绑定PROC到GridView(我假设你正在使用的网络形式)的结果。像这样的东西

var results = dataRep.GetData(); 
Grid.DataSource=results; 
Grid.DataBind(); 

默认情况下它会自动生成所有列。

如果您需要控制要从结果中显示哪些列,可以将AutoGenerateColumns属性设置为false,并在标记中手动定义所需的列。类似这样的:

<asp:GridView AutoGenerateColumns="false" ... 
<Columns> 
<asp:BoundColumn DataField="ColumnNameFromResult" /> 
+0

我使用.NET4和C#,我真的想用更多的东西那么简单的GridView,因为我只有少量的数据显示。或者使用HtmlTable会花费太多精力? – malvina

+0

Gridview将呈现为一个普通的HTML表格。你绝对可以使用HTMLTABLE如果你想,但你需要在结果集的行和列写代码回路和建设的每一个细胞。如果这很简单,我不会担心使用GridView。如果由于ViewState而担心页面的大小,则可以始终在GridView上单独或在页面级别禁用ViewState。 – Icarus

+0

谢谢你的建议。我已经决定使用简单的html表格,因为问题的前提已经发生了一些变化。现在,我必须从单个存储过程中检索数据,并在单独的表中显示所有结果集(在本例中为3)。 – malvina

相关问题