2011-09-05 67 views
0

我有點卡在做什麼!我有一個特殊的表單,它允許我的客戶請求特定產品的報價(由url中的PID定義)表單在模態對話框中加載,並在其內部加載一個Iframe。 Iframe的src值是從產品頁面的ahref的onclick事件中設置的,例如:ASP.NET VB Page_Load只有一次或替代

<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> 

,我裝的形式做一個SQL插入時的Page_Load被激發。此外,它是內 如果Page.IsPostBack = false,那麼

出於某種奇怪的原因頁面做兩次在頁面加載時,當頁面被關閉另一個時間。我需要在第一頁加載SQL插入因爲我的表單使用了返回的值。任何人都可以提出一個好的方法,使Page_Load內的代碼只激活一次?

非常感謝!

UPDATE,全碼:

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 

請原諒我的亂碼...

回答

0

可以這樣做:

static bool IsFirstTime = false; 

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

insertdata()之後將數據插入數據庫。

+0

所有請求之間共享一個靜態變量,所以如果有多個用戶 –