标题听起来很简单,但这里有具体细节。
我被交给一个旧网站延伸一点。它是一个VB.NET实现,它是原始编码器的第一个站点 - 因此很多人都可以使用它。
网站摘要:
主页设计,带oAuth登录页面。主页面是记录的分页,并且根据用户是否已登录,显示单独的按钮进行编辑。到目前为止 - 没有那么大的交易,它的确有效。
现在,当我们深入研究编辑页面时,产品所有者希望能够将记录添加到记录中。看起来非常简单,所有其他CRUD都已完成,但实际插入除外。
我在页面底部添加了一个textarea和一个按钮。 insert事件正在运行,虚拟记录正在放入数据库中。
但是当我尝试获取textarea的值时,失败就会发挥作用,进入查询。
<html xmlns="http://www.w3.org/1999/xhtml">
<script language="VB" runat="server" >
Protected Sub NewNoteButton_Click(sender As Object, e As System.EventArgs)
' Dim myStringResult As String = NewNoteTextArea.InnerHtml
MsgBox("Here1")
Dim constr As String = ConfigurationManager.ConnectionStrings("XXXXXConnectionString").ConnectionString
Using con As New SqlConnection(constr)
Using cmd As New SqlCommand("INSERT INTO EasementNote ([RE_Number], [noteuser], [note]) VALUES (@RE_Number, @NoteUser, @Note)")
cmd.Parameters.AddWithValue("@RE_Number", "test")
cmd.Parameters.AddWithValue("@NoteUser", "test")
cmd.Parameters.AddWithValue("@Note", "more testing")
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
MsgBox("here2")
End Sub
</script>
<head runat="server">
<title></title>
</head>
这是我有HTML代码的地方
<asp:TableFooterRow Width="100%">
<asp:TableCell HorizontalAlign="center" ColumnSpan="2">
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" />
<asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New" Text="New" />
</asp:TableCell>
<asp:TableCell HorizontalAlign="center" ColumnSpan="1">
<asp:TextBox id="NewNoteTextArea" TextMode="multiline" Columns="40" Rows="3" runat="server" />
<asp:Button runat="server" ID="NewNoteButton" Text="Insert Note" OnClick="NewNoteButton_Click"/>
</asp:TableCell>
</asp:TableFooterRow>
当我尝试获取textarea的值时,我收到了
我真的很难过为什么我收到此错误消息。顺便说一句 - 页面后面没有代码......不知道为什么,但是没有,但当我添加一个,并将按钮点击事件移动到它时,按钮点击无法解决。
感谢您的光临。
答案 0 :(得分:3)
由于您的控件位于另一个服务器控件内,您需要使用FindControl来访问代码中的控件,例如
Dim txtNote As TextBox = DirectCast(Me.FormView1.FindControl("NewNoteTextArea"), TextBox)
答案 1 :(得分:-1)
您应该使用文本框控件的Text
属性值,而不是InnerHtml
Dime mySyting as String = NewNoteTextArea.Text