【问题标题】:Without using Nested Gridview showing nested rows with contols in single Gridview不使用嵌套 Gridview 在单个 Gridview 中显示带有控件的嵌套行
【发布时间】:2014-03-07 06:52:42
【问题描述】:

我想在包含 Web 控件的 gridview 中显示嵌套行,当单击 gridview 可见行时将显示这些行。请帮帮我....

提前致谢

【问题讨论】:

  • 嵌套行是与父 GridView 相同的 DataSource 结果还是来自不同的查询结果?
  • 与父网格视图相同的数据源

标签: asp.net gridview


【解决方案1】:

你试过中继器控制吗?

使用转发器,您可以定义自定义页眉、项目和页脚模板,当然您可以在项目模板中定义自定义控件/嵌套行。

在这里查看How to use Repeater control

您也可以尝试使用文字控制来构建运行时 Html 表结构[嵌套行],方法是遍历生成的数据源

示例如下:

foreach (DataRow drTR in dtTemp.Rows)
            {

                #region "TR Building"

                sb.Append("<tr>");
                sb.Append("<td>");
                sb.Append(drTR["SKU"].ToString());
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(drTR["SKUDESC1"].ToString());
                sb.Append("</td>");
                sb.Append("<td>");
if(dtYY.Rows.Count > 0)
{
sb.Append("<table>");
}
foreach(DataRow drX in dtYY.Rows)
{
                sb.Append("<td>");
                sb.Append(drTR["Item1"].ToString());
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(drTR["Item2"].ToString());
                sb.Append("</td>");

                sb.Append("<td>");
                sb.Append(drTR["Item3"].ToString());
                sb.Append("</td>");


}
sb.Append("</table>");
}
                sb.Append("</td>");                   
                sb.Append("</tr>");
} 
ltData.Text = sb.ToString();

【讨论】:

  • 你能举个例子吗?
  • 文字控件[ltData]需要放在HTML表格的主体部分