ASP.NET按钮单击时显示ListView InsertITemtemplate

时间:2009-09-26 14:37:44

标签: asp.net listview

我想在按钮单击时显示ListView InsertITemtemplate(即默认情况下不显示),但无法设法执行此操作。我已经尝试了InsertItemPosition.None但是它也没有显示在按钮点击上。我确信它一定是一件非常简单的事情,但我没有时间完成这项任务。任何帮助将不胜感激。

阿里

3 个答案:

答案 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按钮。