构建一个像ASP.NET中的Access表一样工作的控件的最佳方法是什么?
也就是说,我定义了3列。用户可以添加/编辑/删除行。它可以一次一行,这很好。表单上还有其他字段,与此表无关。当用户完成添加信息行时,他们点击“提交”,并在那个点,就是当我从控件中获取所有数据并保存到数据库(或xml文件或无论)。
我尝试使用ListView和/或GridView构建一些东西,我似乎无法获得我想要的行为。有什么想法或例子吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
在可能有用的链接上:
Using the New ListView Control in ASP.NET 3.5
来自自己项目的Eksample:
<asp:ListView ID="lvList" runat="server" OnLayoutCreated="lvList_LayoutCreated" OnItemDataBound="lvList_OnItemDataBound">
<LayoutTemplate>
<table id="tblTest" class="lvtest" cellpadding="0" cellspacing="0">
<tr>
<th class="listheader">
<asp:Label ID="lbl1" runat="server" />
</th>
<th class="listheader">
<asp:Label ID="lbl2" runat="server" />
</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
<EmptyDataTemplate>
<tr>
<td colspan="2">
<asp:Label ID="lblNotFound" runat="server" OnInit="lblOnInit" />
</td>
</tr>
</EmptyDataTemplate>
<ItemTemplate>
<tr class="<%# Container.DataItemIndex % 2 == 0 ? "odd" : "even" %>">
<td class="listcell">
<asp:Literal ID="lit1" runat="server" />
</td>
<td class="listcell">
<asp:Literal ID="lit1" runat="server" />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
事件处理程序:
protected void lvRist_LayoutCreated(object sender, EventArgs e)
{
SetHeaderValues();
}
//For the label when empty text
protected void lblOnInit(object sender, EventArgs e)
{
SetEmptyText(sender);
}
protected void lvList_OnItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType != ListViewItemType.DataItem) return;
SetDataItem(e);
}
答案 2 :(得分:0)