获取DataList中包含的Textbox的值:我哪里出错了?

时间:2011-07-12 16:11:14

标签: c# asp.net webforms

我正在尝试将insert命令的参数设置为等于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参数设置为某个任意值,则insert语句可以正常工作。有人可以告诉我我的错误以及如何纠正错误吗?

//每条评论的附加代码

的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 :(得分:0)

也许是因为你正在寻找RadTextBox1,但ID是RadTextBox2?

如果Amt.Text返回NULL,那么Convert.ToDecimal(Amt.Text)将返回0.但我不确定你的意思是“上面的例子不起作用”。你的意思是没有插入记录?

答案 1 :(得分:0)

好开始 - 你的代码在你的标记中引用了RadTextBox1它的RadTextBox2