ASP.net 列表视图不显示 current/new 插入的值

ASP.net Listview dont show current/new value inserted

我在 ListView 中获取新输入的记录时遇到问题。

在我的 ItemTemplate 列表中,我用 TextBox 替换了标签。我还创建了一个按钮,它循环遍历 ListView 中的所有行并在警告消息中显示 AcName 字段。如果我将它更新(将 AcName 的文本更改为其他内容),它仍然会显示之前已经存在的记录,而不是我输入的新 text/value。下面是对我来说工作正常但没有生成我想要的结果的代码,这是新值。

HTML 标记

<asp:ListView ID="ListView1"  InsertItemPosition="LastItem" runat="server" >    

  <ItemTemplate>
    <tr>
      <td>
        <asp:Label runat="server" ID="lblID" Text='<%#Eval("ID") %>'></asp:Label>
      </td>
      <td>
        <%--<asp:Label runat="server" ID="lblAcount" Text='<%#Eval("AcName") %>'></asp:Label>--%>
        <asp:TextBox ID="lblAcount" runat="server" CssClass="form-control" Text='<%#Bind("AcName") %>'></asp:TextBox>
        </td>
        <td>
          <%--<asp:Label runat="server" ID="lblNaration" Text='<%#Eval("Naration") %>'></asp:Label>--%>
          <asp:TextBox ID="lblNaration" runat="server" CssClass="form-control" Text='<%#Bind("Naration") %>'></asp:TextBox>
        </td>
        <td>
          <%--<asp:Label runat="server" ID="lblPaidAmount" Text='<%#Eval("PaidAmount") %>'></asp:Label>--%>
          <asp:TextBox ID="lblPaidAmount" runat="server" CssClass="form-control" Text='<%#Bind("PaidAmount") %>'></asp:TextBox>
        </td>
        <td>
          <%--<asp:Label runat="server" ID="lblDeductAmount" Text='<%#Eval("DeductionAmount") %>'></asp:Label>--%>
          <asp:TextBox ID="lblDeductAmount" runat="server" CssClass="form-control" Text='<%#Bind("DeductionAmount") %>'></asp:TextBox>
        </td>
        <td>
          <asp:LinkButton ID="DeleteButton" cssClass="btn btn-info fa fa-trash-o" runat="server" CommandName="DeleteIt"></asp:LinkButton>

        <td>
        </td>
      </tr>

      <asp:Panel ID="Panel2" runat="server" Visible="False">
        <tr>
          <td>
            <asp:Label ID="Label12" runat="server" Text="Credit Acount"></asp:Label>
            <asp:TextBox ID="txtAcName" runat="server" CssClass="form-control" Text='<%#Bind("AcName") %>'></asp:TextBox>
          </td>
        </tr>
      </asp:Panel>
    </ItemTemplate>

  </asp:ListView>

按钮处理程序

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click

    For i As Integer = 0 To ListView1.Items.Count() - 1

        Dim txtAcNames As TextBox = TryCast(ListView1.Items(i).FindControl("txtAcName"), TextBox)

        Dim msg As String
        msg = "<script language="'javascript'">"
        msg += "alert('" & txtAcNames.Text & "');"
        msg += "</script>"
        Response.Write(msg)

    Next

    'txtTotal1.Text = Paid

End Sub

上面的代码对我有用,问题是当我在 ListView 的文本框中输入数据时,它显示绑定到列表视图的旧值,而不是我输入的新值。

我想要的是它应该显示我在运行时在 ListView 文本框中输入的新值。

您在 Button1_Click 提醒 txtAcName.Text,但您在运行时更改 lblAcount.Text 的值。因此,您看到的旧值实际上来自另一个文本框。

请注意,您将两个文本框绑定到同一个 属性 <%# Bind("AcName") %>