Получение значения Textbox, содержащегося в DataList: где я ошибся? - PullRequest
0 голосов
/ 12 июля 2011

Я пытаюсь установить параметр команды вставки равным значению текстового поля, содержащегося в элементе управления DataList. @ Далее я попытаюсь найти соответствующий элемент управления и получить его значение.

    protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
    TextBox Amt = (TextBox)DataList1.Items[0].FindControl("RadTextBox1"); 
    e.Command.Parameters["@Amount"].Value = Convert.ToDecimal(Amt.Text);
  }

Приведенный выше пример кода не работает, но также не возвращает синтаксических ошибок.Я подозреваю, что сделал что-то не так, пытаясь получить значение текстового поля, потому что оператор вставки работает нормально, если я установил параметр @Amount равным некоторому произвольному значению.Может кто-нибудь показать мне мою ошибку и как ее исправить?

// Дополнительный код для комментария

DataList:

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1"><ItemTemplate>

        <telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Eval("TotalProratedAmountDue") %>'>
        </telerik:RadTextBox>
        </ItemTemplate>
    </asp:DataList>

Кнопка вставки:

public void RadButton2_Click(object sender, EventArgs e)
{
    SqlDataSource1.Insert();
}

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Хорошо, чтобы начать - ваш код ссылается на RadTextBox1, а в вашей разметке - RadTextBox2

0 голосов
/ 12 июля 2011

Возможно, потому что вы ищете RadTextBox1, но идентификатор - RadTextBox2?

Если Amt.Text возвращает NULL, то Convert.ToDecimal (Amt.Text) вернет 0. Но я не уверен, что вы подразумеваете под «вышеприведенный пример не работает». Вы имеете в виду, что записи не вставляются?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...