2015-09-07 50 views
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中輸入的新值。

+0

問題仍不清楚我的兩個文本框。你輸入數據到'lblAcount'文本框,那麼你怎麼做,你聲稱它顯示舊值?此外,這個'ListView'有一個數據源?它在哪裏?請編輯您的問題,添加更多信息並刪除不需要的代碼。 – zed

+0

先生,我已經將標籤更改爲文本框給列表看起來像可編輯的網格,現在button1當我點擊它我顯示我警告在列表視圖中的所有txtAcNames問題是當我更改文本框的值是lblAcName並再次按下按鈕1我仍然顯示我相同的舊值不是我剛剛輸入的值。那麼是否有解決方案。 – SMHasnain

+1

您正在提醒'txtAcName.Text',但您正在更改'lblAcount.Text',是不是正是這個問題?您看到的舊值實際上來自其他文本框(您已將兩個綁定到同一個屬性'<%#Bind(「AcName」)%>') – zed

回答

1

您正在提醒txtAcName.TextButton1_Click,但是您在運行時更改lblAcount.Text的值。所以,您看到的舊值實際上來自其他文本框。

注意,您必須綁定到同一屬性<%# Bind("AcName") %>