无法设置列表视图项的值
本文关键字:视图 列表 设置 | 更新日期: 2023-09-27 18:36:03
我在设置嵌套列表视图(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>
我从HoursOrCubesTextBox
和RateTextBox
中获取值的当前方法是:
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 数据库还是从用户输入填充列表视图?
我想
出了解决这个问题的方法。我所做的是将两个文本框设置为 HoursOrCubes
和 Rate
自动回发,然后在 onload 函数中对文本框进行乘法和设置。