ASP.NET VB Page_Load Only Once 或替代方案

发布于 2024-12-03 00:11:47 字数 24965 浏览 2 评论 0原文

我有点不知道该做什么!我有一个特殊的表单,允许我的客户请求特定产品的报价(由 url 中的 PID 定义)。该表单加载到模式对话和 Iframe 内。 Iframe 的 src 值是通过产品页面上 ahref 的 onclick 事件设置的,例如;

<div id='basic-modal'><p><br /><br /><a href='#' class='basic' onClick="document.getElementById('ifr').src='quote/Public/Default.aspx?PID=111'">CLICK ME</a></p></div>

    <div id="basic-modal-content">
        <iframe id="ifr" width="850px" height="600px" frameborder="0" scrolling="no"></iframe>

当 Page_Load 被触发时,我正在加载的表单会执行 SQL 插入。也正是在其中 如果 Page.IsPostBack = False 那么

出于某种奇怪的原因,页面在页面加载时执行两次,在页面关闭时执行另一次。我需要在第一页加载时执行 SQL 插入,因为返回的值由我的表单使用。任何人都可以建议一种使 Page_Load 中的代码仅启动一次的好方法吗?

非常感谢!

更新,完整代码:

aspx 页面

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Public_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="../quoteFront.css" rel="stylesheet" type="text/css" />
<title></title>    
<style type="text/css">
    .style1
    {
        width: 100%;
    }
    .style2
    {
        height: 26px;
    }
    .style5
    {
        width: 299px;
    }
    .style6
    {
        width: 174px;
    }
    .style7
    {
        height: 26px;
        width: 174px;
    }
    .style8
    {
        width: 291px;
    }
    .style9
    {
        height: 26px;
        width: 189px;
    }
    .style10
    {
    }
    .style11
    {
        width: 189px;
    }
    .style12
    {
        width: 191px;
    }
    </style>
</head>
<body>
<form id="form1" runat="server">
<div>
    <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true" CombineScripts="false"  >
    </cc1:ToolkitScriptManager>
</div>
<asp:UpdatePanel ID="UpdatePanel3" runat="server"><ContentTemplate>
<asp:Panel ID="Panel2" runat="server">    
<table class="style1">
    <tr>
        <td class="style12">
            First name</td>
        <td class="style5">
            <asp:TextBox ID="txtFirstName" runat="server" Width="300px" 
                AutoCompleteType="FirstName"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="txtFirstName" ErrorMessage="* Required" ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Last name</td>
        <td class="style5">
            <asp:TextBox ID="txtLastName" runat="server" Width="300px" 
                AutoCompleteType="LastName"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                ControlToValidate="txtLastName" ErrorMessage="* Required" ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Company name</td>
        <td class="style5">
            <asp:TextBox ID="txtCompanyName" runat="server" Width="300px" 
                AutoCompleteType="Company"></asp:TextBox>
        </td>
        <td>
            &nbsp;</td>
    </tr>
    <tr>
        <td class="style12">
            Email address</td>
        <td class="style5">
            <asp:TextBox ID="txtEmailAddress" runat="server" Width="300px" AutoCompleteType="Email"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
                ControlToValidate="txtEmailAddress" ErrorMessage="* Required" 
                ForeColor="Red"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                ControlToValidate="txtEmailAddress" ErrorMessage=" * Invalid email address" 
                ForeColor="Red" 
                ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Phone number</td>
        <td class="style5">
            <asp:TextBox ID="txtPhoneNumber" runat="server" Width="300px" AutoCompleteType="BusinessPhone"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" 
                ControlToValidate="txtPhoneNumber" ErrorMessage="* Required" 
                ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
</table>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div>
        <table class="style1">
        <tr>
            <td class="style11">
                Quantity required</td>
            <td class="style6">
                <asp:TextBox ID="txtQuantity1" runat="server" AutoPostBack="True"></asp:TextBox>
                <cc1:FilteredTextBoxExtender ID="ftbe" runat="server" FilterType="Numbers" 
                    TargetControlID="txtQuantity1" />
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
                    ControlToValidate="txtQuantity1" 
                    ErrorMessage="* Please enter quantity required" ForeColor="Red"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="style11">
                <asp:Label ID="lblDesigninfo" runat="server" Text="Printing info"></asp:Label>
            </td>
            <td class="style6">
                <asp:DropDownList ID="drpDesignInfo1" runat="server" AutoPostBack="True" 
                    DataSourceID="SqlDataSource1" DataTextField="PrintInfoDesc" 
                    DataValueField="ID" AppendDataBoundItems="True">
                    <asp:ListItem></asp:ListItem>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:quotingSystemConnectionString %>" 
                    SelectCommand="SELECT [ID], [PrintInfoDesc] FROM [PrintInfo]">
                </asp:SqlDataSource>
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" 
                    ControlToValidate="drpDesignInfo1" ErrorMessage="* Please select" 
                    ForeColor="Red"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="style11">
                <asp:Label ID="lblColoursSideOne1" runat="server" 
                    Text="Colour options first side" Visible="True"></asp:Label>
            </td>
            <td class="style6">
                <asp:DropDownList ID="drpColoursSideOne1" runat="server" Visible="True" 
                    AutoPostBack="True">
                </asp:DropDownList>
            </td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="style9">
                <asp:Label ID="lblColoursSideTwo1" runat="server" 
                    Text="Colour options second side" Visible="false"></asp:Label>
            </td>
            <td class="style7">
                <asp:DropDownList ID="drpColoursSideTwo1" runat="server" Visible="false">
                </asp:DropDownList>
            </td>
            <td class="style2">
            </td>
        </tr>
    </table>
</div>
</ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="txtQuantity1" EventName="TextChanged" />
    <asp:AsyncPostBackTrigger ControlID="drpDesignInfo1" 
        EventName="SelectedIndexChanged" />
    <asp:AsyncPostBackTrigger ControlID="drpColoursSideOne1" 
        EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
<div style="text-align: center">Please fill in the above fields before uploading 
artwork.
<br />
When the upload is complete you will get the option to upload additional 
artwork.
                <cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" 
                    CompleteBackColor="Lime" ErrorBackColor="Red" 
                    OnClientUploadComplete="UploadComplete" OnClientUploadError="uploadError" 
                    OnClientUploadStarted="StartUpload" 
                    onuploadedcomplete="AsyncFileUpload1_UploadedComplete" ThrobberID="Throbber" 
                    UploaderStyle="Modern" UploadingBackColor="#66CCFF" Width="100%" 
                    ClientIDMode="Inherit" />
                                    <asp:Label ID="Throbber" runat="server" Style="display: none">
<img src="../Images/indicator.gif" align="absmiddle" alt="loading" />
</asp:Label><asp:Label ID="lblStatus" runat="server"></asp:Label>
                <br />
<div style="max-height:70px; overflow : auto; ">
                <asp:Label ID="lblUploadList" runat="server" ForeColor="#006600" 
                    Font-Size="Smaller"></asp:Label>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>        
<table class="style1">
        <tr>
            <td class="style10">
                Any aditional info<asp:TextBox ID="txtComments" runat="server" Height="111px" 
                    TextMode="MultiLine" Width="100%"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="style8">
                <asp:Button ID="Button1" runat="server" Text="Send Request" Width="100%" 
                    Height="45px" Font-Bold="False" />
            </td>

        </tr>
    </table>

</asp:Panel>
     <br />
<asp:Panel ID="Panel1" runat="server" Visible="False">
    Thank you for requesting a quote. A member of our sales team will be in touch 
    shortly.<br />
    <br />
    <asp:Button ID="btnRequestAnother" runat="server" 
        Text="Request another quote for this product" CausesValidation="False" 
        Height="45px" Width="100%"/>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
    <script type="text/javascript" language="javascript">

        function uploadError(sender, args) {
            document.getElementById("lblStatus").innerHTML = "Failed to upload " + args.get_fileName() + ". Please try again. If problem persistes please email [email protected]";
            document.getElementById("Button1").innerHTML = 'Send Request';
        }

        function StartUpload(sender, args) {
            document.getElementById("lblStatus").innerHTML = 'Uploading Started. Depending on your connection speed this can take a very long time. Please wait....';
            document.getElementById("Button1").innerHTML = 'Uploading Started. Please Wait....';
        }

        function UploadComplete(sender, args) {
            var filename = args.get_fileName();
            var contentType = args.get_contentType();
            var text = "Upload Complete, Press Select File to upload more. " //"Size of " + filename + " is " + args.get_length() + " bytes";
            if (contentType.length > 0) {
                text //+= " and content type is '" + contentType + "'.";
            }
            document.getElementById("lblStatus").innerHTML = text;
            document.getElementById("lblUploadList").innerHTML = document.getElementById("lblUploadList").innerHTML + "<br />" + filename + " Uploaded Successfully";
            document.getElementById("Button1").innerHTML = 'Send Request';
        }

</script>


    </form>


</body>

VB 代码:

Imports System.Data
Imports System.IO
Imports System.Data.SqlClient

Partial Class Public_Default
Inherits System.Web.UI.Page
Dim ArtworkID As Integer
Dim customerIDDecrypt As String
Public QuoteID As Integer
Dim UploadedFileList As String
Dim productID As String
'Shared IsFirstTime As Boolean = False


Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    productID = Request.QueryString("PID")
    customerIDDecrypt = "0"

    'If Not Page.IsPostBack AndAlso Not IsFirstTime Then
If Not Page.IsPostBack Then
        Try
            Dim sql As String = "INSERT INTO [Quote] (Status, CreationDate, CreationTime, CustomerID, ProductID, IP)" & _
                "VALUES (@Status, @CreationDate, @CreationTime, @CustomerID, @ProductID, @IP) SELECT SCOPE_IDENTITY()"

            Using cn As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionString")), _
                  cmd As New SqlCommand(sql, cn)

                cmd.Parameters.Add("@Status", SqlDbType.NVarChar).Value = 1
                cmd.Parameters.Add("@CreationDate", SqlDbType.Date).Value = Date.UtcNow.ToLocalTime
                cmd.Parameters.Add("@CreationTime", SqlDbType.Time).Value = Date.UtcNow.ToLocalTime.TimeOfDay
                cmd.Parameters.Add("@CustomerID", SqlDbType.Int).Value = customerIDDecrypt
                cmd.Parameters.Add("@ProductID", SqlDbType.Int).Value = productID
                cmd.Parameters.Add("@IP", SqlDbType.NVarChar).Value = CStr(Request.UserHostAddress())
                cn.Open()
                '//grab the ID of this insert.
                QuoteID = Integer.Parse(cmd.ExecuteScalar().ToString())

                cn.Close()
                'IsFirstTime = True
            End Using
        Catch ex As Exception
            '// do something with this error!
            Response.Write(ex.Message)
        End Try
    End If
End Sub

Protected Sub txtQuantity1_TextChanged(sender As Object, e As System.EventArgs) Handles txtQuantity1.TextChanged
    '//populate colours dependant on quantity
    If txtQuantity1.Text > "" Then
        If txtQuantity1.Text < "100" Then
            'side one
            drpColoursSideOne1.Items.Clear()
            'drpColoursSideOne1.Enabled = True
            drpColoursSideOne1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideOne1.Items.Add(New ListItem("More than one colour", "full"))
            drpColoursSideOne1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideOne1.Visible = True
            'side two
            drpColoursSideTwo1.Items.Clear()
            'drpColoursSideTwo1.Enabled = True
            drpColoursSideTwo1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideTwo1.Items.Add(New ListItem("More than one colour", "full"))
            drpColoursSideTwo1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideTwo1.Items.Add(New ListItem("na", "na"))
        Else
            'side one
            drpColoursSideOne1.Items.Clear()
            'drpColoursSideOne1.Enabled = True
            drpColoursSideOne1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideOne1.Items.Add(New ListItem("Two colours", "2"))
            drpColoursSideOne1.Items.Add(New ListItem("Three colours", "3"))
            drpColoursSideOne1.Items.Add(New ListItem("Four colours", "4"))
            drpColoursSideOne1.Items.Add(New ListItem("Five colours", "5"))
            drpColoursSideOne1.Items.Add(New ListItem("Full colour (eg, photo)", "full"))
            drpColoursSideOne1.Items.Add(New ListItem("I don't know!", "help"))
            'side two
            drpColoursSideTwo1.Items.Clear()
            'drpColoursSideTwo1.Enabled = True
            drpColoursSideTwo1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideTwo1.Items.Add(New ListItem("Two colours", "2"))
            drpColoursSideTwo1.Items.Add(New ListItem("Three colours", "3"))
            drpColoursSideTwo1.Items.Add(New ListItem("Four colours", "4"))
            drpColoursSideTwo1.Items.Add(New ListItem("Five colours", "5"))
            drpColoursSideTwo1.Items.Add(New ListItem("Full colour (eg, photo)", "full"))
            drpColoursSideTwo1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideTwo1.Items.Add(New ListItem("na", "na"))
        End If
    Else
        'nothing
    End If
End Sub

Protected Sub drpDesignInfo1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles drpDesignInfo1.SelectedIndexChanged
    If drpDesignInfo1.SelectedValue = "1" And txtQuantity1.Text > "0" Then
        lblColoursSideTwo1.Visible = False
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        drpColoursSideTwo1.Visible = False
        drpColoursSideTwo1.Enabled = False
        drpColoursSideTwo1.SelectedValue = "na"
        ' drpColoursSideTwo1.Items.Remove(New ListItem("Same as the first side", "same"))
    ElseIf drpDesignInfo1.SelectedValue = "3" And txtQuantity1.Text > "0" Then
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        lblColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Enabled = True
        ' drpColoursSideTwo1.Items.Remove(New ListItem("Same as the first side", "same"))
    ElseIf drpDesignInfo1.SelectedValue = "2" And txtQuantity1.Text > "0" Then
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        lblColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Enabled = False
        ' Dim tmpCount2 = drpColoursSideTwo1.Items.Count
        ' If tmpCount2 = 7 Or tmpCount2 = 3 Then
        'drpColoursSideTwo1.Items.Add(New ListItem("Same as the first side", "same"))
        'End If
        drpColoursSideTwo1.SelectedValue = drpColoursSideOne1.SelectedValue
    End If
End Sub
Protected Sub AsyncFileUpload1_UploadedComplete(sender As Object, e As AjaxControlToolkit.AsyncFileUploadEventArgs)
    System.Threading.Thread.Sleep(3000)
    If AsyncFileUpload1.HasFile Then
        'Dim strPath As String = newPath + Path.GetFileName(e.FileName)
        'AsyncFileUpload1.SaveAs(strPath)

        Dim fileName = Path.GetFileName(e.FileName)
        'Dim imageBytes(AsyncFileUpload1.PostedFile.InputStream.Length) As Byte
        'AsyncFileUpload1.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.length)
        Dim imageBytes = AsyncFileUpload1.FileBytes
        'AsyncFileUpload1.FileBytes
        '// now insert this into the database
        Try
            Dim sql As String = "INSERT INTO [UploadedFiles] (CustomerID, FileName, FileSize, FileContent, FileType, FileUploadDate, QuoteID)" & _
                "VALUES (@CustomerID, @FileName, @FileSize, @FileContent, @FileType, @FileUploadDate, @QuoteID) SELECT SCOPE_IDENTITY()"

            Using cn As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionStringLargeTimeout")), _
                  cmd As New SqlCommand(sql, cn)
                cmd.CommandTimeout = "3600"

                cmd.Parameters.Add("@CustomerID", SqlDbType.Int).Value = 1
                cmd.Parameters.Add("@FileName", SqlDbType.NVarChar).Value = fileName
                cmd.Parameters.Add("@FileSize", SqlDbType.NVarChar).Value = AsyncFileUpload1.PostedFile.ContentLength
                cmd.Parameters.Add("@FileContent", SqlDbType.VarBinary).Value = imageBytes
                cmd.Parameters.Add("@FileType", SqlDbType.NVarChar, 50).Value = AsyncFileUpload1.PostedFile.ContentType
                cmd.Parameters.Add("@FileUploadDate", SqlDbType.Date).Value = Date.UtcNow.ToLocalTime
                cmd.Parameters.Add("@QuoteID", SqlDbType.Int).Value = QuoteID

                cn.Open()
                '//grab the ID of this insert.
                ArtworkID = Integer.Parse(cmd.ExecuteScalar().ToString())
                cn.Close()
            End Using
        Catch ex As Exception
            '// do something with this error!
            Response.Write(ex.Message)
        End Try
    End If
End Sub

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    '// Populate the database with remaining information
    Button1.Text = "Please Wait...  Sending Request"
    Dim thisConnection As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionString"))
    'Create Command object
    Dim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()
    Try
        ' Open Connection
        thisConnection.Open()
        ' 1. Create Command
        ' Sql Update Statement
        Dim updateSql As String = "UPDATE Quote " & _
           "SET Status = '2', FirstName = @FirstName, LastName = @LastName, CompanyName = @CompanyName, Email = @Email, Phone = @Phone, Quantity = @Quantity, DesignInfo = @DesignInfo, CS1 = @CS1, CS2 = @CS2, Comments = @Comments " & _
           "WHERE QuoteID = " & QuoteID
        Dim UpdateCmd As New SqlCommand(updateSql, thisConnection)
        ' 2. Map Parameters
        'UpdateCmd.Parameters.Add("@Status", SqlDbType.Int, "Status")
        UpdateCmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 100, "FirstName")
        UpdateCmd.Parameters.Add("@LastName", SqlDbType.NVarChar, 100, "LastName")
        UpdateCmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 100, "CompanyName")
        UpdateCmd.Parameters.Add("@Email", SqlDbType.NVarChar, 200, "Email")
        UpdateCmd.Parameters.Add("@Phone", SqlDbType.NVarChar, 30, "Phone")
        UpdateCmd.Parameters.Add("@Quantity", SqlDbType.Int, 20, "Quantity")
        UpdateCmd.Parameters.Add("@DesignInfo", SqlDbType.NVarChar, 100, "DesignInfo")
        UpdateCmd.Parameters.Add("@CS1", SqlDbType.NVarChar, 20, "CS1")
        UpdateCmd.Parameters.Add("@CS2", SqlDbType.NVarChar, 20, "CS2")
        UpdateCmd.Parameters.Add("@Comments", SqlDbType.NVarChar, 1000, "Comments")
        ''''''''''''''
        'UpdateCmd.Parameters("@Status").Value = 2
        UpdateCmd.Parameters("@FirstName").Value = txtFirstName.Text
        UpdateCmd.Parameters("@LastName").Value = txtLastName.Text
        UpdateCmd.Parameters("@CompanyName").Value = txtCompanyName.Text
        UpdateCmd.Parameters("@Email").Value = txtEmailAddress.Text
        UpdateCmd.Parameters("@Phone").Value = txtPhoneNumber.Text
        UpdateCmd.Parameters("@Quantity").Value = txtQuantity1.Text
        UpdateCmd.Parameters("@DesignInfo").Value = drpDesignInfo1.SelectedValue
        UpdateCmd.Parameters("@CS1").Value = drpColoursSideOne1.SelectedValue
        Dim CS2 As String
        If drpDesignInfo1.SelectedValue = "1" Then
            CS2 = "na"
        Else
            CS2 = drpColoursSideTwo1.SelectedValue
        End If
        UpdateCmd.Parameters("@CS2").Value = CS2
        UpdateCmd.Parameters("@Comments").Value = txtComments.Text
        'QuoteID
        '''''''''''''''
        UpdateCmd.ExecuteNonQuery()
    Catch ex As SqlException
        ' Display error
        Response.Write("FAIL: " & ex.Message)
    Finally
        ' Close Connection
        thisConnection.Close()
        Panel1.Visible = True
        Panel2.Visible = False
    End Try
End Sub

Protected Sub btnRequestAnother_Click(sender As Object, e As System.EventArgs) Handles btnRequestAnother.Click
    QuoteID = Nothing
    Response.Redirect(Request.RawUrl)
    Panel1.Visible = False
    Panel2.Visible = True
    'IsFirstTime = False
End Sub
Protected Sub drpColoursSideOne1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles drpColoursSideOne1.SelectedIndexChanged
    If drpDesignInfo1.SelectedValue = "2" Then
        drpColoursSideTwo1.SelectedValue = drpColoursSideOne1.SelectedValue
    End If
End Sub
End Class

请原谅我凌乱的代码...

I'm a little stuck on what to do! I have a special form that allows my customers to request a quote for a specific product (defined by PID in url) The form is loaded inside a modal dialogue and within that a Iframe. The Iframe's src value is set from the onclick event of ahref on the product pages eg;

<div id='basic-modal'><p><br /><br /><a href='#' class='basic' onClick="document.getElementById('ifr').src='quote/Public/Default.aspx?PID=111'">CLICK ME</a></p></div>

    <div id="basic-modal-content">
        <iframe id="ifr" width="850px" height="600px" frameborder="0" scrolling="no"></iframe>

The form that I am loading does a SQL insert when Page_Load is fired. Also it is within
If Page.IsPostBack = False Then

For some strange reason the page is doing it twice when the page loads and another time when the page is closed.. I need the SQL insert on the first page load as the returned values are used by my form. Can anyone suggest a good way of making the code within Page_Load only fire up once?

Many thanks!

UPDATE, Full Code:

aspx page

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Public_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="../quoteFront.css" rel="stylesheet" type="text/css" />
<title></title>    
<style type="text/css">
    .style1
    {
        width: 100%;
    }
    .style2
    {
        height: 26px;
    }
    .style5
    {
        width: 299px;
    }
    .style6
    {
        width: 174px;
    }
    .style7
    {
        height: 26px;
        width: 174px;
    }
    .style8
    {
        width: 291px;
    }
    .style9
    {
        height: 26px;
        width: 189px;
    }
    .style10
    {
    }
    .style11
    {
        width: 189px;
    }
    .style12
    {
        width: 191px;
    }
    </style>
</head>
<body>
<form id="form1" runat="server">
<div>
    <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true" CombineScripts="false"  >
    </cc1:ToolkitScriptManager>
</div>
<asp:UpdatePanel ID="UpdatePanel3" runat="server"><ContentTemplate>
<asp:Panel ID="Panel2" runat="server">    
<table class="style1">
    <tr>
        <td class="style12">
            First name</td>
        <td class="style5">
            <asp:TextBox ID="txtFirstName" runat="server" Width="300px" 
                AutoCompleteType="FirstName"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="txtFirstName" ErrorMessage="* Required" ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Last name</td>
        <td class="style5">
            <asp:TextBox ID="txtLastName" runat="server" Width="300px" 
                AutoCompleteType="LastName"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                ControlToValidate="txtLastName" ErrorMessage="* Required" ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Company name</td>
        <td class="style5">
            <asp:TextBox ID="txtCompanyName" runat="server" Width="300px" 
                AutoCompleteType="Company"></asp:TextBox>
        </td>
        <td>
             </td>
    </tr>
    <tr>
        <td class="style12">
            Email address</td>
        <td class="style5">
            <asp:TextBox ID="txtEmailAddress" runat="server" Width="300px" AutoCompleteType="Email"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
                ControlToValidate="txtEmailAddress" ErrorMessage="* Required" 
                ForeColor="Red"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                ControlToValidate="txtEmailAddress" ErrorMessage=" * Invalid email address" 
                ForeColor="Red" 
                ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
        </td>
    </tr>
    <tr>
        <td class="style12">
            Phone number</td>
        <td class="style5">
            <asp:TextBox ID="txtPhoneNumber" runat="server" Width="300px" AutoCompleteType="BusinessPhone"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" 
                ControlToValidate="txtPhoneNumber" ErrorMessage="* Required" 
                ForeColor="Red"></asp:RequiredFieldValidator>
        </td>
    </tr>
</table>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div>
        <table class="style1">
        <tr>
            <td class="style11">
                Quantity required</td>
            <td class="style6">
                <asp:TextBox ID="txtQuantity1" runat="server" AutoPostBack="True"></asp:TextBox>
                <cc1:FilteredTextBoxExtender ID="ftbe" runat="server" FilterType="Numbers" 
                    TargetControlID="txtQuantity1" />
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
                    ControlToValidate="txtQuantity1" 
                    ErrorMessage="* Please enter quantity required" ForeColor="Red"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="style11">
                <asp:Label ID="lblDesigninfo" runat="server" Text="Printing info"></asp:Label>
            </td>
            <td class="style6">
                <asp:DropDownList ID="drpDesignInfo1" runat="server" AutoPostBack="True" 
                    DataSourceID="SqlDataSource1" DataTextField="PrintInfoDesc" 
                    DataValueField="ID" AppendDataBoundItems="True">
                    <asp:ListItem></asp:ListItem>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:quotingSystemConnectionString %>" 
                    SelectCommand="SELECT [ID], [PrintInfoDesc] FROM [PrintInfo]">
                </asp:SqlDataSource>
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" 
                    ControlToValidate="drpDesignInfo1" ErrorMessage="* Please select" 
                    ForeColor="Red"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="style11">
                <asp:Label ID="lblColoursSideOne1" runat="server" 
                    Text="Colour options first side" Visible="True"></asp:Label>
            </td>
            <td class="style6">
                <asp:DropDownList ID="drpColoursSideOne1" runat="server" Visible="True" 
                    AutoPostBack="True">
                </asp:DropDownList>
            </td>
            <td>
                 </td>
        </tr>
        <tr>
            <td class="style9">
                <asp:Label ID="lblColoursSideTwo1" runat="server" 
                    Text="Colour options second side" Visible="false"></asp:Label>
            </td>
            <td class="style7">
                <asp:DropDownList ID="drpColoursSideTwo1" runat="server" Visible="false">
                </asp:DropDownList>
            </td>
            <td class="style2">
            </td>
        </tr>
    </table>
</div>
</ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="txtQuantity1" EventName="TextChanged" />
    <asp:AsyncPostBackTrigger ControlID="drpDesignInfo1" 
        EventName="SelectedIndexChanged" />
    <asp:AsyncPostBackTrigger ControlID="drpColoursSideOne1" 
        EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
<div style="text-align: center">Please fill in the above fields before uploading 
artwork.
<br />
When the upload is complete you will get the option to upload additional 
artwork.
                <cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" 
                    CompleteBackColor="Lime" ErrorBackColor="Red" 
                    OnClientUploadComplete="UploadComplete" OnClientUploadError="uploadError" 
                    OnClientUploadStarted="StartUpload" 
                    onuploadedcomplete="AsyncFileUpload1_UploadedComplete" ThrobberID="Throbber" 
                    UploaderStyle="Modern" UploadingBackColor="#66CCFF" Width="100%" 
                    ClientIDMode="Inherit" />
                                    <asp:Label ID="Throbber" runat="server" Style="display: none">
<img src="../Images/indicator.gif" align="absmiddle" alt="loading" />
</asp:Label><asp:Label ID="lblStatus" runat="server"></asp:Label>
                <br />
<div style="max-height:70px; overflow : auto; ">
                <asp:Label ID="lblUploadList" runat="server" ForeColor="#006600" 
                    Font-Size="Smaller"></asp:Label>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>        
<table class="style1">
        <tr>
            <td class="style10">
                Any aditional info<asp:TextBox ID="txtComments" runat="server" Height="111px" 
                    TextMode="MultiLine" Width="100%"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="style8">
                <asp:Button ID="Button1" runat="server" Text="Send Request" Width="100%" 
                    Height="45px" Font-Bold="False" />
            </td>

        </tr>
    </table>

</asp:Panel>
     <br />
<asp:Panel ID="Panel1" runat="server" Visible="False">
    Thank you for requesting a quote. A member of our sales team will be in touch 
    shortly.<br />
    <br />
    <asp:Button ID="btnRequestAnother" runat="server" 
        Text="Request another quote for this product" CausesValidation="False" 
        Height="45px" Width="100%"/>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
    <script type="text/javascript" language="javascript">

        function uploadError(sender, args) {
            document.getElementById("lblStatus").innerHTML = "Failed to upload " + args.get_fileName() + ". Please try again. If problem persistes please email [email protected]";
            document.getElementById("Button1").innerHTML = 'Send Request';
        }

        function StartUpload(sender, args) {
            document.getElementById("lblStatus").innerHTML = 'Uploading Started. Depending on your connection speed this can take a very long time. Please wait....';
            document.getElementById("Button1").innerHTML = 'Uploading Started. Please Wait....';
        }

        function UploadComplete(sender, args) {
            var filename = args.get_fileName();
            var contentType = args.get_contentType();
            var text = "Upload Complete, Press Select File to upload more. " //"Size of " + filename + " is " + args.get_length() + " bytes";
            if (contentType.length > 0) {
                text //+= " and content type is '" + contentType + "'.";
            }
            document.getElementById("lblStatus").innerHTML = text;
            document.getElementById("lblUploadList").innerHTML = document.getElementById("lblUploadList").innerHTML + "<br />" + filename + " Uploaded Successfully";
            document.getElementById("Button1").innerHTML = 'Send Request';
        }

</script>


    </form>


</body>

VB CODE:

Imports System.Data
Imports System.IO
Imports System.Data.SqlClient

Partial Class Public_Default
Inherits System.Web.UI.Page
Dim ArtworkID As Integer
Dim customerIDDecrypt As String
Public QuoteID As Integer
Dim UploadedFileList As String
Dim productID As String
'Shared IsFirstTime As Boolean = False


Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    productID = Request.QueryString("PID")
    customerIDDecrypt = "0"

    'If Not Page.IsPostBack AndAlso Not IsFirstTime Then
If Not Page.IsPostBack Then
        Try
            Dim sql As String = "INSERT INTO [Quote] (Status, CreationDate, CreationTime, CustomerID, ProductID, IP)" & _
                "VALUES (@Status, @CreationDate, @CreationTime, @CustomerID, @ProductID, @IP) SELECT SCOPE_IDENTITY()"

            Using cn As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionString")), _
                  cmd As New SqlCommand(sql, cn)

                cmd.Parameters.Add("@Status", SqlDbType.NVarChar).Value = 1
                cmd.Parameters.Add("@CreationDate", SqlDbType.Date).Value = Date.UtcNow.ToLocalTime
                cmd.Parameters.Add("@CreationTime", SqlDbType.Time).Value = Date.UtcNow.ToLocalTime.TimeOfDay
                cmd.Parameters.Add("@CustomerID", SqlDbType.Int).Value = customerIDDecrypt
                cmd.Parameters.Add("@ProductID", SqlDbType.Int).Value = productID
                cmd.Parameters.Add("@IP", SqlDbType.NVarChar).Value = CStr(Request.UserHostAddress())
                cn.Open()
                '//grab the ID of this insert.
                QuoteID = Integer.Parse(cmd.ExecuteScalar().ToString())

                cn.Close()
                'IsFirstTime = True
            End Using
        Catch ex As Exception
            '// do something with this error!
            Response.Write(ex.Message)
        End Try
    End If
End Sub

Protected Sub txtQuantity1_TextChanged(sender As Object, e As System.EventArgs) Handles txtQuantity1.TextChanged
    '//populate colours dependant on quantity
    If txtQuantity1.Text > "" Then
        If txtQuantity1.Text < "100" Then
            'side one
            drpColoursSideOne1.Items.Clear()
            'drpColoursSideOne1.Enabled = True
            drpColoursSideOne1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideOne1.Items.Add(New ListItem("More than one colour", "full"))
            drpColoursSideOne1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideOne1.Visible = True
            'side two
            drpColoursSideTwo1.Items.Clear()
            'drpColoursSideTwo1.Enabled = True
            drpColoursSideTwo1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideTwo1.Items.Add(New ListItem("More than one colour", "full"))
            drpColoursSideTwo1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideTwo1.Items.Add(New ListItem("na", "na"))
        Else
            'side one
            drpColoursSideOne1.Items.Clear()
            'drpColoursSideOne1.Enabled = True
            drpColoursSideOne1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideOne1.Items.Add(New ListItem("Two colours", "2"))
            drpColoursSideOne1.Items.Add(New ListItem("Three colours", "3"))
            drpColoursSideOne1.Items.Add(New ListItem("Four colours", "4"))
            drpColoursSideOne1.Items.Add(New ListItem("Five colours", "5"))
            drpColoursSideOne1.Items.Add(New ListItem("Full colour (eg, photo)", "full"))
            drpColoursSideOne1.Items.Add(New ListItem("I don't know!", "help"))
            'side two
            drpColoursSideTwo1.Items.Clear()
            'drpColoursSideTwo1.Enabled = True
            drpColoursSideTwo1.Items.Add(New ListItem("One colour", "1"))
            drpColoursSideTwo1.Items.Add(New ListItem("Two colours", "2"))
            drpColoursSideTwo1.Items.Add(New ListItem("Three colours", "3"))
            drpColoursSideTwo1.Items.Add(New ListItem("Four colours", "4"))
            drpColoursSideTwo1.Items.Add(New ListItem("Five colours", "5"))
            drpColoursSideTwo1.Items.Add(New ListItem("Full colour (eg, photo)", "full"))
            drpColoursSideTwo1.Items.Add(New ListItem("I don't know!", "help"))
            drpColoursSideTwo1.Items.Add(New ListItem("na", "na"))
        End If
    Else
        'nothing
    End If
End Sub

Protected Sub drpDesignInfo1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles drpDesignInfo1.SelectedIndexChanged
    If drpDesignInfo1.SelectedValue = "1" And txtQuantity1.Text > "0" Then
        lblColoursSideTwo1.Visible = False
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        drpColoursSideTwo1.Visible = False
        drpColoursSideTwo1.Enabled = False
        drpColoursSideTwo1.SelectedValue = "na"
        ' drpColoursSideTwo1.Items.Remove(New ListItem("Same as the first side", "same"))
    ElseIf drpDesignInfo1.SelectedValue = "3" And txtQuantity1.Text > "0" Then
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        lblColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Enabled = True
        ' drpColoursSideTwo1.Items.Remove(New ListItem("Same as the first side", "same"))
    ElseIf drpDesignInfo1.SelectedValue = "2" And txtQuantity1.Text > "0" Then
        lblColoursSideOne1.Visible = True
        drpColoursSideOne1.Visible = True
        drpColoursSideOne1.Enabled = True
        lblColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Visible = True
        drpColoursSideTwo1.Enabled = False
        ' Dim tmpCount2 = drpColoursSideTwo1.Items.Count
        ' If tmpCount2 = 7 Or tmpCount2 = 3 Then
        'drpColoursSideTwo1.Items.Add(New ListItem("Same as the first side", "same"))
        'End If
        drpColoursSideTwo1.SelectedValue = drpColoursSideOne1.SelectedValue
    End If
End Sub
Protected Sub AsyncFileUpload1_UploadedComplete(sender As Object, e As AjaxControlToolkit.AsyncFileUploadEventArgs)
    System.Threading.Thread.Sleep(3000)
    If AsyncFileUpload1.HasFile Then
        'Dim strPath As String = newPath + Path.GetFileName(e.FileName)
        'AsyncFileUpload1.SaveAs(strPath)

        Dim fileName = Path.GetFileName(e.FileName)
        'Dim imageBytes(AsyncFileUpload1.PostedFile.InputStream.Length) As Byte
        'AsyncFileUpload1.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.length)
        Dim imageBytes = AsyncFileUpload1.FileBytes
        'AsyncFileUpload1.FileBytes
        '// now insert this into the database
        Try
            Dim sql As String = "INSERT INTO [UploadedFiles] (CustomerID, FileName, FileSize, FileContent, FileType, FileUploadDate, QuoteID)" & _
                "VALUES (@CustomerID, @FileName, @FileSize, @FileContent, @FileType, @FileUploadDate, @QuoteID) SELECT SCOPE_IDENTITY()"

            Using cn As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionStringLargeTimeout")), _
                  cmd As New SqlCommand(sql, cn)
                cmd.CommandTimeout = "3600"

                cmd.Parameters.Add("@CustomerID", SqlDbType.Int).Value = 1
                cmd.Parameters.Add("@FileName", SqlDbType.NVarChar).Value = fileName
                cmd.Parameters.Add("@FileSize", SqlDbType.NVarChar).Value = AsyncFileUpload1.PostedFile.ContentLength
                cmd.Parameters.Add("@FileContent", SqlDbType.VarBinary).Value = imageBytes
                cmd.Parameters.Add("@FileType", SqlDbType.NVarChar, 50).Value = AsyncFileUpload1.PostedFile.ContentType
                cmd.Parameters.Add("@FileUploadDate", SqlDbType.Date).Value = Date.UtcNow.ToLocalTime
                cmd.Parameters.Add("@QuoteID", SqlDbType.Int).Value = QuoteID

                cn.Open()
                '//grab the ID of this insert.
                ArtworkID = Integer.Parse(cmd.ExecuteScalar().ToString())
                cn.Close()
            End Using
        Catch ex As Exception
            '// do something with this error!
            Response.Write(ex.Message)
        End Try
    End If
End Sub

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    '// Populate the database with remaining information
    Button1.Text = "Please Wait...  Sending Request"
    Dim thisConnection As New SqlConnection(ConfigurationManager.AppSettings("quotingSystemConnectionString"))
    'Create Command object
    Dim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()
    Try
        ' Open Connection
        thisConnection.Open()
        ' 1. Create Command
        ' Sql Update Statement
        Dim updateSql As String = "UPDATE Quote " & _
           "SET Status = '2', FirstName = @FirstName, LastName = @LastName, CompanyName = @CompanyName, Email = @Email, Phone = @Phone, Quantity = @Quantity, DesignInfo = @DesignInfo, CS1 = @CS1, CS2 = @CS2, Comments = @Comments " & _
           "WHERE QuoteID = " & QuoteID
        Dim UpdateCmd As New SqlCommand(updateSql, thisConnection)
        ' 2. Map Parameters
        'UpdateCmd.Parameters.Add("@Status", SqlDbType.Int, "Status")
        UpdateCmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 100, "FirstName")
        UpdateCmd.Parameters.Add("@LastName", SqlDbType.NVarChar, 100, "LastName")
        UpdateCmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 100, "CompanyName")
        UpdateCmd.Parameters.Add("@Email", SqlDbType.NVarChar, 200, "Email")
        UpdateCmd.Parameters.Add("@Phone", SqlDbType.NVarChar, 30, "Phone")
        UpdateCmd.Parameters.Add("@Quantity", SqlDbType.Int, 20, "Quantity")
        UpdateCmd.Parameters.Add("@DesignInfo", SqlDbType.NVarChar, 100, "DesignInfo")
        UpdateCmd.Parameters.Add("@CS1", SqlDbType.NVarChar, 20, "CS1")
        UpdateCmd.Parameters.Add("@CS2", SqlDbType.NVarChar, 20, "CS2")
        UpdateCmd.Parameters.Add("@Comments", SqlDbType.NVarChar, 1000, "Comments")
        ''''''''''''''
        'UpdateCmd.Parameters("@Status").Value = 2
        UpdateCmd.Parameters("@FirstName").Value = txtFirstName.Text
        UpdateCmd.Parameters("@LastName").Value = txtLastName.Text
        UpdateCmd.Parameters("@CompanyName").Value = txtCompanyName.Text
        UpdateCmd.Parameters("@Email").Value = txtEmailAddress.Text
        UpdateCmd.Parameters("@Phone").Value = txtPhoneNumber.Text
        UpdateCmd.Parameters("@Quantity").Value = txtQuantity1.Text
        UpdateCmd.Parameters("@DesignInfo").Value = drpDesignInfo1.SelectedValue
        UpdateCmd.Parameters("@CS1").Value = drpColoursSideOne1.SelectedValue
        Dim CS2 As String
        If drpDesignInfo1.SelectedValue = "1" Then
            CS2 = "na"
        Else
            CS2 = drpColoursSideTwo1.SelectedValue
        End If
        UpdateCmd.Parameters("@CS2").Value = CS2
        UpdateCmd.Parameters("@Comments").Value = txtComments.Text
        'QuoteID
        '''''''''''''''
        UpdateCmd.ExecuteNonQuery()
    Catch ex As SqlException
        ' Display error
        Response.Write("FAIL: " & ex.Message)
    Finally
        ' Close Connection
        thisConnection.Close()
        Panel1.Visible = True
        Panel2.Visible = False
    End Try
End Sub

Protected Sub btnRequestAnother_Click(sender As Object, e As System.EventArgs) Handles btnRequestAnother.Click
    QuoteID = Nothing
    Response.Redirect(Request.RawUrl)
    Panel1.Visible = False
    Panel2.Visible = True
    'IsFirstTime = False
End Sub
Protected Sub drpColoursSideOne1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles drpColoursSideOne1.SelectedIndexChanged
    If drpDesignInfo1.SelectedValue = "2" Then
        drpColoursSideTwo1.SelectedValue = drpColoursSideOne1.SelectedValue
    End If
End Sub
End Class

Please excuse my messy code...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愁杀 2024-12-10 00:11:47

你可以这样做:

static bool IsFirstTime = false;

之后。

if(!Page.IsPostBack && !IsFirstTime)
        {
            insertdata();
            IsFirstTime = true;
        }

在insertdata() 将数据插入数据库

you can do like this:

static bool IsFirstTime = false;

After this

if(!Page.IsPostBack && !IsFirstTime)
        {
            insertdata();
            IsFirstTime = true;
        }

insertdata() inserts data into database.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文