无法设置 ListView 项的值

Cannot set value of ListView Item

我在设置嵌套列表视图(lsitview 中的列表视图)内的文本框的值时遇到问题。我想做的是提取两个文本框的值(工作正常),将它们相乘,然后将该值设置为第三个文本框(我遇到问题的地方)。

这是我的列表视图设置:

<asp:ListView ID="LV_Tickets" runat="server" ClientIDMode="Static" DataSourceID="SQL_Tickets" InsertItemPosition="FirstItem" OnPreRender="LV_Tickets_PreRender" DataKeyNames="TicketNum">
<SelectedItemTemplate>

     <asp:ListView ID="LV_TicketProd" runat="server" DataKeyNames="ChargeID" DataSourceID="SQL_TicketProducts" InsertItemPosition="LastItem" OnPreRender="LV_TicketProd_PreRender" OnItemInserted="LV_TicketProd_ItemInserted" OnItemInserting="LV_TicketProd_ItemInserting" OnItemUpdated="LV_TicketProd_ItemUpdated" OnItemUpdating="LV_TicketProd_ItemUpdating">
<InsertItemTemplate>

     <td>
         <asp:TextBox ID="HoursOrCubesTextBox" runat="server" style="height: 20px; width: 165px;" Text='<%# Bind("HoursOrCubes") %>' OnTextChanged="HoursOrCubes_TextChanged" AutoPostBack="true" />
     </td>
     <td>
          <asp:TextBox ID="RateTextBox" runat="server" style="height: 20px; width: 120px;" Text='<%# Bind("Rate") %>' OnTextChanged="Rate_TextChanged" AutoPostBack="true" />
     </td>
     <td>
          <asp:TextBox ID="LineTotalTextBox" runat="server" style="height: 20px; width: 120px;" Text='<%# Bind("LineTotal") %>' />
     </td>

</ InsertItemTemplate>

</ SelectedItemTemplate>

我从 HoursOrCubesTextBoxRateTextBox 获取值的当前方式是:

protected void HoursOrCubesTextBox_TextChanged(object sender, EventArgs e)
{
    ListView LV_TicketProd = (ListView)Session["TicketProd"];
    TextBox HoursOrCubesTextBox = (TextBox)(LV_TicketProd.InsertItem.FindControl("HoursOrCubesTextBox"));

    string HoC = HoursOrCubesTextBox.Text //This here is getting the value from the textbox.
}

但是当我尝试做相反的事情来设置文本框的值时,没有任何反应:

TextBox LineTotalTextBox = (TextBox)(LV_TicketProd.InsertItem.FindControl("LineTotalTextBox"));
LineTotalTextBox.Text = FinalValue; //FinalValue is the two values multiplied together.

我检查了来自文本框的值是否正确,并且当我将它们相乘时我得到一个整数值。所以我不完全确定为什么我不能设置 LineTotalTextBox 的值。任何帮助将不胜感激。

不要尝试读取和写入项目模板。那是 ListView 的工作。

读写ListView绑定的数据源

如果我的意思是,我会展示示例,但我无法理解您的代码....您是从 SQL 数据库还是从用户输入填充 ListView?

我想出了解决这个问题的方法。我所做的是将HoursOrCubesRate这两个文本框设置为autopostback,然后在onload函数中对文本框进行乘法和设置。