我想在按钮单击时显示ListView InsertITemtemplate(即默认情况下不显示),但无法设法执行此操作。我已经尝试了InsertItemPosition.None
但是它也没有显示在按钮点击上。我确信它一定是一件非常简单的事情,但我没有时间完成这项任务。任何帮助将不胜感激。
阿里
答案 0 :(得分:7)
试试这个:
<asp:ListView ID="ListView1" runat="server" DataSourceID="LinqDataSource1" InsertItemPosition="None">
<LayoutTemplate>
<div runat="server" id="lstProducts">
<asp:Button ID="btnAddProduct" runat="server" Text="Add Product"
CommandName="Create" OnClick="btnAddProduct_Click" />
<div runat="server" id="itemPlaceholder" />
</div>
</LayoutTemplate>
<ItemTemplate>
<div><%# Eval("ProductName") %></div>
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="txtProductName" runat="server" ></asp:TextBox>
</InsertItemTemplate>
</asp:ListView>
然后在onclick事件后面的代码中
protected void btnAddProduct_Click(object sender, EventArgs e)
{
ListView1.InsertItemPosition = InsertItemPosition.FirstItem;
}
答案 1 :(得分:1)
我在客户端处理这种情况,具体如下:
<InsertItemTemplate>
<tr id="InsertRow" style="display:none">
...
</tr>
</InsertItemTemplate>
然后你可以设置一个按钮(传统的html按钮或Button控件)和一些客户端脚本,例如:
<input
type="button"
value="Show Insert"
onclick="document.getElementById('InsertRow').style.display='';" />
使行显示在您希望的位置。
答案 2 :(得分:0)
将CommandName="Insert"添加到ASP.NET按钮。