在ASP.NET中自定义编辑记录的最佳方法?
我来自一个Rails背景,并在ASP.NET项目(而不是ASP MVC)上做了一些工作。新手问题:为记录表制作自定义编辑器的最简单方法是什么?在ASP.NET中自定义编辑记录的最佳方法?
例如:我有一大堆的数据行,并希望更改每个“类别”栏 - 也许一个下拉列表中,也许一个链接,也许用户键入它
在Rails,我。 '迭代行来构建表,并且每行都有一个表单。表单会有一个输入框或下拉菜单,并将数据提交给控制器,如“/ item/edit/15?category = foo”,其中15是itemID,新类别是“foo”。
我是新来的ASP.NET模型,我不知道“正确”的方式来做到这一点 - 只是最简单的方法来取回新数据&保存。我会制作一个自定义控件并将其附加到每一行吗?任何帮助赞赏。
您现在可以真正作弊并且窥视.NET 3.5 SP1附带的新动态数据。斯科特格思里有一个博客条目demoing它会如何快速和容易在这里为你流:
http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx
没有得到那个最前沿,我会使用的XSD生成器生成一个强类型数据集相一致与表中的问题。这也会生成可用于执行所有CRUD语句的TableAdapter。
从那里,它绑定到DataGrid和杠杆参与,所有的标准模板/事件,如EditIndex,SelectedIndex的,RowEditing,RowUpdated等
自1.0年初,我已经做了.NET的日子以及这种功能在每次更新框架时都变得越来越简化。
编辑:我想给Matt Berseth博客点点头。我一直在关注他的很多东西,现在很棒!
有几个控件可以为你做到这一点,根据它们的相对灵活性,具有不同程度的复杂性。
执行此操作的传统方法是DataGrid控件,它为您提供表格布局。如果你想在外观上具有更大的灵活性,DataList和ListView控件也具有对编辑,插入或删除字段的内置支持。
检查出Matt Berseth's blog的一些优秀的asp.net控件实例。
感谢您的答案家伙。它看起来像定制DataGrid是要走的路。对于任何ASP.NET新手,这里是我在做什么
<asp:DataGrid ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="RuleID" Visible="False" HeaderText="RuleID"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Category">
<ItemTemplate>
<!-- in case we want to display an image -->
<asp:Literal ID="litImage" runat="server">
</asp:Literal>
<asp:DropDownList ID="categoryListDropdown" runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
这将创建一个数据网格。然后,我们可以将其绑定到数据源(在我的情况数据表),并使用之类的东西
foreach (DataGridItem item in this.GridView1.Items)
{
DropDownList categoryListDropdown = ((DropDownList)item.FindControl("categoryListDropdown"));
categoryListDropdown.Items.AddRange(listItems.ToArray());
}
来填充数据网格的INTIAL下拉。在这种情况下,您还可以访问item.Cells [0] .text以获取RuleID。
我自己的注意事项:ASP.NET模型执行代码隐藏文件中的所有内容。在高层次上,您始终可以遍历GridView1。获取每一行的项目,以及item.findControl(“ControlID”)来查询存储在每个项目中的值,例如在按下“更新”按钮之后。