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