我正在尝试将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();
}
答案 0 :(得分:0)
也许是因为你正在寻找RadTextBox1,但ID是RadTextBox2?
如果Amt.Text返回NULL,那么Convert.ToDecimal(Amt.Text)将返回0.但我不确定你的意思是“上面的例子不起作用”。你的意思是没有插入记录?
答案 1 :(得分:0)
好开始 - 你的代码在你的标记中引用了RadTextBox1它的RadTextBox2