关于主GridView模版列嵌套从GridView

grt 2008-03-07 03:16:26
我做了GridView模版列嵌套GridView显示主从表数据,运行时无错误提示,可结果是从表不出现,不知什么原因。
原码贴出,帮助指正:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Aqsg.ascx.cs" Inherits="sgdw_UserControl_Aqsg" %>
<div>
</div>
<div id="事故" style="width: 100%; border: 1px;">
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
</asp:ScriptManagerProxy>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="code" DataSourceID="SqlDataSource1"
OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:CommandField ShowSelectButton="True">
<HeaderStyle Wrap="False" />
<ItemStyle Wrap="False" />
</asp:CommandField>
<asp:BoundField DataField="code" HeaderText="系统号" InsertVisible="False" ReadOnly="True"
SortExpression="code" />
<asp:BoundField DataField="sg_date" HeaderText="事故时间" SortExpression="sg_date" />
<asp:BoundField DataField="bg_sgdw" HeaderText="事故单位" SortExpression="bg_sgdw" />
<asp:BoundField DataField="project" HeaderText="工程项目" SortExpression="project" />
<asp:BoundField DataField="js_yy" HeaderText="大致经过" SortExpression="js_yy" />
<asp:TemplateField HeaderText="伤亡人员">
<ItemTemplate>
<asp:GridView ID="GridView2" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataKeyNames="code,id" DataSourceID="SqlDataSource2" AllowSorting="True">
<Columns>
<asp:BoundField DataField="code" HeaderText="系统号" ReadOnly="True" SortExpression="code" />
<asp:BoundField DataField="id" HeaderText="序号" ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="sg_name" HeaderText="姓名" SortExpression="sg_name" />
<asp:BoundField DataField="sex" HeaderText="性别" SortExpression="sex" />
<asp:BoundField DataField="nl" HeaderText="年龄" SortExpression="nl" />
<asp:BoundField DataField="gz" HeaderText="工种" SortExpression="gz" />
<asp:BoundField DataField="sglb" HeaderText="事故类别" SortExpression="sglb" />
<asp:BoundField DataField="swcd" HeaderText="伤亡程度" SortExpression="swcd" />
</Columns>
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" Wrap="False" Font-Bold="False"
Font-Size="10pt" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#FFEEAA" Font-Bold="False" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Left" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="False" ForeColor="White" Wrap="False"
Font-Names="宋体" Font-Size="10pt" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:anjzConnectionString %>"
SelectCommand="SELECT [code], [id], [sg_name], [sex], [nl], [gz], [sglb], [swcd] FROM [aqsg_1] WHERE ([code] = @code)">
<SelectParameters>
<asp:Parameter Name="code" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="remarks" HeaderText="备案" SortExpression="remarks" />
</Columns>
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" Wrap="False" Font-Bold="False"
Font-Size="10pt" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#FFEEAA" Font-Bold="False" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Left" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="False" ForeColor="White" Wrap="False"
Font-Names="宋体" Font-Size="10pt" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:anjzConnectionString %>"
SelectCommand="SELECT [code], [sg_date], [bg_sgdw], [project], [js_yy], [remarks] FROM [aqsg] ORDER BY [sg_date] DESC">
</asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
</div>

///////////////////////////////////////////////////////////////////////////////////////
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class sgdw_UserControl_Aqsg : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1)
{
SqlDataSource DS = e.Row.FindControl("SqlDataSource2") as SqlDataSource;
DS.SelectParameters["code"].DefaultValue = e.Row.Cells[0].Text;
}

}
}

...全文
286 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenpu1983 2010-01-26
  • 打赏
  • 举报
回复
学习学习!
grt 2008-07-21
  • 打赏
  • 举报
回复
11楼的说到点子上了,我做出来了,关键是e.Row.Cells[1].Text;
中的1
grt 2008-07-21
  • 打赏
  • 举报
回复
我是搞成功了,可是以主表主键过滤出来的子表在对应的主表行显示了,问题是:
这个过滤出来的子表在主表的其它行也显示,这就不对了。不知为什么?
driftbeam 2008-03-14
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1)
{
SqlDataSource sqlds = e.Row.FindControl("SqlDataSource2") as SqlDataSource;
sqlds.SelectParameters["code"].DefaultValue = e.Row.Cells[1].Text;
}

}
没错,我测试成功了,HTML也没问题!
qfgyd2004 2008-03-08
  • 打赏
  • 举报
回复
if (e.Row.RowType == DataControlRowType.DataRow)
{
SqlDataSource DS = e.Row.FindControl("SqlDataSource2") as SqlDataSource;
如果确保这个Ds有数据,这样绑定没错
DS.SelectParameters["code"].DefaultValue = e.Row.Cells[0].Text;
((GridView)e.Row.FindControl("GridView2")).DataSource=DS;
((GridView)e.Row.FindControl("GridView2")).DataBind();
}
qfgyd2004 2008-03-08
  • 打赏
  • 举报
回复
gridview可以嵌套的
echojiji 2008-03-08
  • 打赏
  • 举报
回复
嵌套用repeater比较好
Allen_Chen_ 2008-03-08
  • 打赏
  • 举报
回复
最后加上 ((GridView)e.Row.FindControl("GridView2")).DataBind();
grt 2008-03-07
  • 打赏
  • 举报
回复
可有人已做出来了,用的Access数据库。是否和什么库有关?
我用SQL不行吗?
ZHFIFA 2008-03-07
  • 打赏
  • 举报
回复
Gridview是不能通过嵌套显示父子表的,datalist可以
grt 2008-03-07
  • 打赏
  • 举报
回复
((GridView)e.Row.FindControl("GridView2")).DataSource=DS;
这句为重复定义,去了还是没有反应,不能显示。
SaintKaKa 2008-03-07
  • 打赏
  • 举报
回复
应该是因为在GridView1_RowDataBound事件里没有对模板列里的GridView进行数据源绑定
在GridView1_RowDataBound事件里
if (e.Row.RowType == DataControlRowType.DataRow)
{
SqlDataSource DS = e.Row.FindControl("SqlDataSource2") as SqlDataSource;
DS.SelectParameters["code"].DefaultValue = e.Row.Cells[0].Text;
((GridView)e.Row.FindControl("GridView2")).DataSource=DS;
((GridView)e.Row.FindControl("GridView2")).DataBind();
}

试试这样写可以么?
grt 2008-03-07
  • 打赏
  • 举报
回复
没人能看一下吗?
insus 2008-03-07
  • 打赏
  • 举报
回复
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 /从 使用DropDownList过滤的/从报表 使用两个DropDownList过滤的/从报表 跨页面的/从报表 使用GridView 和DetailView实现的/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件中使用TemplateField 在DetailsView控件中使用TemplateField 使用FormView 的模板 在GridView的页脚中显示统计信息 编辑插入和删除数据 概述插入、更新和删除数据 研究插入、更新和删除的关联事件 在ASP.NET页面中处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的/从报表 跨页面的/从报表 使用Repeater和DataList实现的/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource中使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 /从 使用DropDownList过滤的/从报表 使用两个DropDownList过滤的/从报表 跨页面的/从报表 使用GridView 和DetailView实现的/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件中使用TemplateField 在DetailsView控件中使用TemplateField 使用FormView 的模板 在GridView的页脚中显示统计信息 编辑插入和删除数据 概述插入、更新和删除数据 研究插入、更新和删除的关联事件 在ASP.NET页面中处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的/从报表 跨页面的/从报表 使用Repeater和DataList实现的/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource中使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 /从 使用DropDownList过滤的/从报表 使用两个DropDownList过滤的/从报表 跨页面的/从报表 使用GridView 和DetailView实现的/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件中使用TemplateField 在DetailsView控件中使用TemplateField 使用FormView 的模板 在GridView的页脚中显示统计信息 编辑插入和删除数据 概述插入、更新和删除数据 研究插入、更新和删除的关联事件 在ASP.NET页面中处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的/从报表 跨页面的/从报表 使用Repeater和DataList实现的/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource中使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧