我知道有一个 ajax 模态弹出扩展器,但这并不是我真正想要的。我已经成功地将令人难以置信的 DataTables 插件连接到网格模式下的 ASP.Net ListView 设置并对其进行了样式化,坦率地说,它很糟糕。
我为编辑和删除添加了 2 个额外的列,并且编辑按钮适用于编辑模板,但我想启动 twitter 引导弹出模式并让用户在那里编辑项目。
我在每一行中放入图标以弹出模式应该没有问题,但我对如何从列表视图行中获取值感到困惑。
是否可以将整个编辑模板作为模式对话框启动?
我使用 ASP.NET Listview 和 Fancybox 实现了这一点,但我最终在模式中启动了一个新页面,该页面采用了正在编辑的项目 ID 的查询字符串,并使用数据库调用填充了所有内容。这是超级矫枉过正,我真的不想依赖它。
我需要的是帮助获取编辑模板所做的信息。我想我可以使用 item_command 事件作为起点。
请帮忙。这是我的简单演示列表视图的片段。
<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<tr>
<td>
<asp:Label ID="NameLabel" runat="server"
Text='<%# Eval("Name") %>' />
</td>
<td>
<asp:Label ID="ItemTypeLabel" runat="server"
Text='<%# Eval("ItemType") %>' />
</td>
<td>
<asp:Label ID="DescriptionLabel" runat="server"
Text='<%# Eval("Description") %>' />
</td>
<td>
<asp:Label ID="PriceLabel" runat="server"
Text='<%# Eval("Price","{0:C}") %>' />
</td>
<td>
<asp:LinkButton ID="EditButton" CommandName="Edit"
runat="server">Edit</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="DeleteButton" CommandName="Delete"
runat="server">Delete</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr>
<td>
<asp:TextBox ID="NameTextBox" runat="server" Text='<%# Bind("Name") %>' />
</td>
<td>
<asp:TextBox ID="ItemTypeTextBox" runat="server"
Text='<%# Bind("ItemType") %>' />
</td>
<td>
<asp:TextBox ID="DescriptionTextBox" runat="server"
Text='<%# Bind("Description") %>' />
</td>
<td>
<asp:TextBox ID="PriceTextBox" runat="server" Text='<%# Bind("Price") %>' />
</td>
<td>
<asp:LinkButton ID="UpdateButton" CommandName="Update"
runat="server">Update</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="CancelButton" CommandName="Cancel"
runat="server">Cancel</asp:LinkButton>
</td>
</tr>
</EditItemTemplate>
<LayoutTemplate>
<table id="myTable" border="0">
<thead>
<tr>
<th>Name</th>
<th>ItemType</th>
<th>Description</th>
<th>Price</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr id="itemPlaceholder" runat="server">
</tr>
</tbody>
</table>
</LayoutTemplate>
</asp:ListView>
<asp:Content ContentPlaceHolderID="CPscript" Runat="Server">
<script type="text/javascript">
$(document).ready(function () {
// for datatables
$('#myTable').dataTable({
"aaSorting": []
});
// for watermark (targets all textboxes inside datatable div)
$("#DataTable :input:text").watermark("Search for Data").addClass("watermark");
});
</script>
</asp:Content>