У меня возникли проблемы с установкой значения текстового поля внутри вложенного списка (listview внутри lsitview). То, что я пытаюсь сделать, это вытащить значения двух текстовых полей (которые работают нормально), умножить их вместе и установить это значение в третье текстовое поле (где у меня возникают проблемы).Невозможно установить значение ListView Item
здесь установка ListView, что у меня есть:
<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. Любая помощь будет оценена.
ListViews подключены к источнику данных SQL, который подключен к базе данных. Но пользователи могут добавлять данные в базу данных через ListView. И я хочу изменить значение текстового поля в списке, прежде чем данные будут вставлены в базу данных. –
Сделайте свою работу в событии OnItemUpdating ListView. –
Не активируется ли событие OnItemUpdating, когда вы ОБНОВЛЯЕТ НЕ ВСТАВИТЬ значение? –