这是调用Update Item方法的子例程。该按钮位于编辑模板上。它调用另一个子例程来获取用于更新编辑模板上的文本框的值。然后它调用updateitem将该值保存到数据库
Protected Sub btnCreateChargerRecord_Click(sender As Object, e As System.EventArgs)
Dim MyFormview As FormView = UpdatePanel1.FindControl("Formview1")
Dim lblChargerSerialNumber As TextBox = MyFormview.FindControl("FL_Charger_Serial_NumberTextBox")
Dim ddlState As DropDownList = MyFormview.FindControl("ddlState")
Session("State") = ddlState.SelectedValue.ToString
lblChargerSerialNumber.Text = GetBatterySerialNumber(Session("State"), "Charger").ToString
Try
MyFormview.UpdateItem(False)
Catch ex As FormatException
MessageLabel.Text = ex.Message.ToString & ex.Source.ToString
End Try
End Sub
当我运行此代码时,出现错误“输入字符串格式不正确” 但是,如果我注释掉MyFormview.UpdateItem(False)行并使用标准formview链接按钮更新“更新”没有错误结果。请参阅下面的HTML for Formview
答案 0 :(得分:0)
问题已解决。与编辑项模板上的文本框相关的问题: -
<asp:TextBox ID="FL_Battery_PriceTextBox" runat="server"
Text='<%# Bind("FL_Battery_Price","{0:$#0.00}") %>' CssClass="FieldValue"
Style="z-index: 135; left: 502px; position: absolute; top: 651px"
Width="100px" Height="20px"
></asp:TextBox>
格式化数据库值以使用前导美元符号显示它。打破ItemUpdating事件处理程序并检查NewValues我看到链接按钮Update方法已删除了前导$符号,但UpdateItem方法因此不会导致上面的格式错误。所以解决方案是手动删除ItemUpdating事件中的前导$符号