嵌套字典到嵌套转发器asp.net c#
发布时间:2020-12-16 04:26:29 所属栏目:asp.Net 来源:网络整理
导读:我正在制作一个asp.page,它将显示有关公司资产的分层信息. 为了获取数据,我使用了lambda表达式: FASAssetInfoDataContext fasInfo = new FASAssetInfoDataContext(); var data = from g in fasInfo.Asset_Informations where g.Department.Substring(0,3) =
我正在制作一个asp.page,它将显示有关公司资产的分层信息.
为了获取数据,我使用了lambda表达式: FASAssetInfoDataContext fasInfo = new FASAssetInfoDataContext(); var data = from g in fasInfo.Asset_Informations where g.Department.Substring(0,3) == p select g; Dictionary<string,Dictionary<string,List<info>>> branch = data.GroupBy(e => e.Location) .ToDictionary(g => g.Key,g => g.GroupBy(gl => gl.G_L_Asset_Acct_No) .ToDictionary(gl => gl.Key,gl => gl.Select(s => new info { acqDate = s.Acquisition_Date,asstNo = s.Co_Asset_Number,classInfo = s.Class,description = s.Description,mfgSerialNo = s.Mfg_Serial_No,deprThisRun = s.Depr_This_Run__Int_,AcqValue = s.Acquisition_Value__Int_,currentAccDepr = s.Current_Accum_Depr__Int_,estLife = s.Est_Life__YYMM___Int_,inServiceDate = s.Placed_In_Service_Date__Int_,netBookValue = s.Current_Net_Book_Value__Int_,oldAcqValue = s.Acquisition_Value__Tax_ }).ToList())); 所以我现在有一组嵌套的字典,最后有一个信息列表.我的问题是如何在页面本身上最好地显示这些信息?我可以获得第一级,但一直在努力让嵌套的中继器正常运行.如果有更好的控制使用我都是耳朵:) 谢谢, 马尔科 解决方法
如果你确实需要使用嵌套的中继器,那么它可能,但是让它工作并不是特别明显.以下方法可行(简化为简洁):
<asp:Repeater id="level1" OnItemDataBound="level1_ItemDataBound" ...> <ItemTemplate> <asp:Repeater id="level2" OnItemDataBound="level2_ItemDataBound" ...> <ItemTemplate> <asp:Repeater id="level3" OnItemDataBound="level3_ItemDataBound" ...> </asp:Repeater> </ItemTemplate> </asp:Repeater> </ItemTemplate> </asp:Repeater> 代码背后: protected void Page_Load(object sender,EventArgs e) { Dictionary<string,List<info>>> branch = ...; level1.DataSource = branch; level1.DataBind(); } protected void level1_ItemDataBound(object sender,RepeaterItemEventArgs e) { Dictionary<string,List<info>> data = (Dictionary<string,List<info>>)e.Item.DataItem; Repeater level2 = e.Item.FindControl("level2") as Repeater; level2.DataSource = data; level2.DataBind(); } protected void level2_ItemDataBound(object sender,RepeaterItemEventArgs e) { List<info> data = (List<info>)e.Item.DataItem; Repeater level3 = e.Item.FindControl("level3") as Repeater; level3.DataSource = data; level3.DataBind(); } protected void level3_ItemDataBound(object sender,RepeaterItemEventArgs e) { // Bind properties from info elements in List<info> here } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 我如何验证日期?
- asp.net – 使用WebAPI时重新验证模型(TryValidateModel等效
- .net – 需要临时报告组件
- asp.net – SQL网络接口,错误:26 – 定位服务器/实例指定错
- .NET 下基于动态代理的 AOP 框架实现揭秘
- asp.net-mvc – 如何单元测试应用了[Authorize]属性的控制器
- .Net Core MemoryCache PostEvictionCallback无法正常工作
- asp.net-mvc – Knockout,CKEditor&Single Page App
- asp.net – 错误4005表单身份验证失败 – 提供的故障单已过
- asp.net-mvc – 具有自定义重定向的AuthorizeAttribute
推荐文章
站长推荐
- asp.net-mvc – 字段必须是数字 如何将此消息更改
- asp.net – 处理单数和多个控制器/路由
- asp.net-mvc-3 – MVC 3 Razor Meta描述/关键字
- asp.net-mvc-3 – 根据url更改控制器中的布局
- 谈谈基于SQL Server 的Exception Handling[中篇]
- asp.net-core-mvc – “:exists”在路由模板上做
- 如何在ASP.NET MVC中配置3个级别的URL?
- asp.net – 从One Build任务创建多个SetParamete
- 腾讯云-Linux-docker容器中安装vim 、telnet、if
- asp.net – 如何预编译Web应用程序项目?
热点阅读