【发布时间】:2013-01-24 12:38:50
【问题描述】:
在 ASP.NET 中实现以下接口的技巧是什么?
我认为截图应该能解释一切。
- 两个 dropDownLists 都适用于 SQL 表。 [Categories],[Items] 绑定 ID_category PK/FK
- 行数可变(默认为 1 行,带有“添加”按钮)
- 选择类别只会更改其旁边的 dropDownList 的内容,而在添加/删除其他行时内容保持不变
- “添加”按钮保存当前设置并添加带有“选择值”或最终选择第一个类别/第一个项目的新行
如何在网站上添加、更改、删除项目或其他一些 PostBack 时存储先前选择的类别/项目和按类别过滤的下拉菜单?
到目前为止,我尝试过将 Repeater 与 DataSet 一起使用,但是我遇到了几个不同的问题:
- 无法保留以前的下拉菜单之间的关系
- DropDowns 相互重置
- 第二个下拉菜单在添加新行时丢失过滤
我可以发布一些代码,但由于它不能完全工作,也许完全不同的方法会更好。基本上我从this 教程开始。中继器当前看起来像:
<repeater>
<itemtemplate>
<dropDown DataSource="categoriesDS"
value='<%# DataBinder.Eval(Container.DataItem, "Category") %>'.../>
<dropDown DataSource="itemsDS"
value='<%# DataBinder.Eval(Container.DataItem, "Item") %>'.../>
<button CommandName='<%# DataBinder.Eval(Container.DataItem, "Button") %>'
Text='<%# DataBinder.Eval(Container.DataItem, "Button") %>' .../>
</itemtemplate>
</repeater>
提前感谢您提供任何建议或解决方案,希望对其他人有所帮助。
【问题讨论】:
-
它们都必须是分层的吗?
-
成对。类别 > 项目,类别 > 项目。
-
我假设您正在某处保存或保存当前下拉值?您是否尝试过使用中继器的 OnItemDataBound 方法来设置下拉菜单的 SelectedValue?
-
我记得,它导致了错误。这是一个老问题,我走了不同的路,但我仍然想知道如何实现这一目标。也许不只是我。
标签: c# asp.net drop-down-menu repeater sqldatasource