2
我在ListView中获取新输入的记录有问题。ASP.net Listview不显示当前/新值插入
在我的ItemTemplate列表中,我用TextBox替换了标签。我还创建了一个按钮,它循环显示ListView中的所有行,并在警报消息中显示AcName字段。如果我更新它(将AcName的文本更改为其他内容),它仍然显示之前已经存在的记录,而不是我输入的新文本/值。下面是为我正确工作的代码,但没有产生我想要的结果,这是新的价值。
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 TextBox中输入的新值。
问题仍不清楚我的两个文本框。你输入数据到'lblAcount'文本框,那么你怎么做,你声称它显示旧值?此外,这个'ListView'有一个数据源?它在哪里?请编辑您的问题,添加更多信息并删除不需要的代码。 – zed
先生,我已经将标签更改为文本框给列表看起来像可编辑的网格,现在button1当我点击它我显示我警告在列表视图中的所有txtAcNames问题是当我更改文本框的值是lblAcName并再次按下按钮1我仍然显示我相同的旧值不是我刚刚输入的值。那么是否有解决方案。 – SMHasnain
您正在提醒'txtAcName.Text',但您正在更改'lblAcount.Text',是不是正是这个问题?您看到的旧值实际上来自其他文本框(您已将两个绑定到同一个属性'<%#Bind(“AcName”)%>') – zed