以表格格式显示数据的选项

时间:2011-03-29 20:02:25

标签: asp.net data-binding

Data Representation Format

你好

我想以屏幕截图中显示的格式显示数据。显示的所有数据都是从Sql Server-2005数据库中检索的。这种数据表示的最佳选择是哪种?我在论坛上看过,从他们那里我无法得到一个清晰的视角。有人建议listview其他嵌套数据网格,一些转发器控制。能否请你建议哪一个是正确而准确的前进方法?还有一些原因(如果可能!!)。我正在使用visual studio 2008,.net Framework 3.5,带有c#的asp.net,我在我的项目中没有使用LINQ,它是一个Web应用程序。同样的图片也可以在http://postimage.org/image/2xj9bdles/

找到

感谢您的期待

4 个答案:

答案 0 :(得分:1)

对不起,只是在黑暗中拍摄。你试过Telerik控件了吗?不幸的是,不是免费的......

答案 1 :(得分:1)

您绝对可以使用ListView和嵌套的Gridviews执行此操作。它没有什么棘手的。

我建议你从ListView开始,然后制作父行(即:灰色栏行。)从那里你可以添加你的嵌套GridViews。

答案 2 :(得分:1)

每当我遇到需要以复杂表格格式表示的数据时,我默认使用Repeater控件。我甚至开始将Repeater用于简单的表格。为何要中继?您可以完全(并且轻松地)控制输出。这允许一些非常复杂的安排,并且还允许用于简单网格的轻量级HTML。

答案 3 :(得分:1)

我认为你需要在盒子外面看一看。现在你只是在探索服务器控件。虽然方便,但它们缺乏以实用方式定制的能力。

您可以使用字符串生成器轻松地在您的代码中构建此表,该生成器具有无限制的控制和更少的代码。

以下是使用LINQ作为数据源的示例,但您可以为自己修改它。

StringBuilder sb = new StringBuilder();

sb.Append( "<table class='tableStripe'>");
sb.Append( "<tr><th width='1%'>Active</th><th>Image</th><th>Name</th><th>Short Description</th><th>Source</th><th width='1%'>Date Created</th><th width='1%'>Data Modified</th></tr>");

foreach (var result in join)
{
    string chk = (result.Brand.Active ? "checked='checked'" : "");
    sb.AppendFormat( @"<tr><td><input class='brandChk' value='{4}' type='checkbox' {0}>
                       </td><td width='1%'><img width='50px' src='{1}'</img></td>
                       <td><a href='/admin/Catalog/Brand/Detail.aspx?brandId={4}'>{2} 
                       </a></td><td width='60%'>{3}</td>", chk, result.Brand.Image,
                       result.Brand.Name, result.c,result.Brand.BrandID);
    sb.Append("<td>");
        foreach (var q in result.Sources)
        {
            string srcname = (q.Source1=="Motovicity" ? "Motovicity":"Direct");
            sb.AppendFormat("<img src='{0}' title='{1}'</img>", q.Image,srcname);
        }
        string date = string.Format("{0:MM/dd/yy}", result.Brand.DateCreated);
        string mod = string.Format("{0:MM/dd/yy}", result.Brand.DateModified);

    sb.Append("</td>");
    sb.AppendFormat("<td>{0}</td><td>{1}</td></tr>", date, mod);
}
sb.Append("</table>");
resultSpan.InnerHtml = sb.ToString();

这个例子比你想要的要复杂得多,但它应该得到它的重点。