2015-01-02 4 views
0

У меня возникли проблемы с установкой значения текстового поля внутри вложенного списка (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. Любая помощь будет оценена.

ответ

0

Я понял, как исправить эту проблему. То, что я сделал, было установлено двумя текстовыми полями HoursOrCubes и Rate для автозапуска, затем было выполнено умножение и настройка текстового поля в функции onload.

0

Не пытайтесь читать & писать в шаблон элемента. Это работа ListView.

Прочитано & напишите источник данных, к которому привязан ListView.

Я бы привел примеры, если я имею в виду, но я не могу понять ваш код .... Вы заполняете ListView из SQL db или из пользовательского ввода?

+0

ListViews подключены к источнику данных SQL, который подключен к базе данных. Но пользователи могут добавлять данные в базу данных через ListView. И я хочу изменить значение текстового поля в списке, прежде чем данные будут вставлены в базу данных. –

+0

Сделайте свою работу в событии OnItemUpdating ListView. –

+0

Не активируется ли событие OnItemUpdating, когда вы ОБНОВЛЯЕТ НЕ ВСТАВИТЬ значение? –

Смежные вопросы