将FormView值分配给VB变量

时间:2014-11-18 11:09:52

标签: asp.net vb.net email variables

我正在尝试将FormView值分配给VB变量。

我使用的代码在first_nameTextBox是TextBox并且用户直接输入数据时工作正常,但是当first_nameTextBox是通过FormView从数据库填充的标签时失败。

我收到的错误是BC30451:'FormView2_first_nameTextBox' is not declared. It may be inaccessible due to its protection level

任何帮助都非常感激。

代码如下;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net.Mail" %>
<%@ Import Namespace="System.Text" %>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="ltr">
<head runat="server">
<!-- Scripting area here -->
<script runat="server" type="text/vbscript"> 
Protected Sub btnSubmit_click (ByVal sender As Object, ByVal e As EventArgs)
    If IsPostBack Then
            Dim sc As SmtpClient = New SmtpClient("relay.hostinguk.net")
            Dim sb As StringBuilder = New StringBuilder()
            Dim msg As MailMessage = Nothing
            sb.Append("Name : " + FormView2_first_nameTextBox.Text + vbCrLf)
            Try
                msg = New MailMessage("from@company.com", _
                    "to@company.com", "Contact details for Co", _
                    sb.ToString())
                sc.Send(msg)
            Catch ex As Exception
                ' something bad happened
                Response.Write("Something bad happened! - please try again")
            Finally
            Multiview1.SetActiveView(ViewConfirmation)
                If Not msg Is Nothing Then msg.Dispose()        
            End Try
    End If
    End Sub
Protected Sub Page_Load (ByVal sender As Object, ByVal e As EventArgs)
    If Not IsPostBack Then
    Try
    Multiview1.SetActiveView(ViewForm)
    Catch ex As Exception
                ' something bad happened
                Response.Write("Something bad happened! - please try again")
    End Try
    End If
End Sub
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:MultiView runat="server" id="MultiView1">
    <asp:View runat="server" id="ViewForm"> 
            <asp:AccessDataSource ID="AccessDataSource2bd" runat="server" DataFile="../app_data/bw_data.mdb" SelectCommand="SELECT * FROM student WHERE student_ID = 92">
            </asp:AccessDataSource>
<asp:FormView runat="server" id="FormView2" DataSourceID="AccessDataSource2bd" DataKeyNames="student_ID" DefaultMode="ReadOnly">
        <ItemTemplate >
        <asp:Label id="first_nameTextBox" runat="server" Text='<%# Eval("first_name") %>' />,
        </ItemTemplate >
</asp:FormView>         
<asp:Table runat="server" id="Table2">
    <asp:TableRow runat="server">
        <asp:TableCell runat="server" HorizontalAlign="Left" height="20px">
        <asp:Button id="UpdateButton" runat="server" CommandName="Update" onclick="btnSubmit_click" Text="Send Email"/>
        </asp:TableCell>
    </asp:TableRow>
</asp:Table>
</asp:View>
<asp:View runat="server" id="ViewConfirmation">
        <p>An email has been sent, and copied to you, confirming all current contact details.</p>
</asp:View>
<p></p>
</asp:MultiView>
</form>
</body>
</html>

由于 蚂蚁

1 个答案:

答案 0 :(得分:0)

试试这个:

dim tb as TextBox = FormView2.Row.FindControl("first_nameTextBox")
sb.Append("Name : " + tb.Text + vbCrLf)