0

背景: 選択したキャリアに基づいてバンドルのリストをリストボックスに自動ポストバックする Web フォームがあります。ポストバックが発生すると、ユーザーが入力したすべてのデータが消去されます。

AutoPostback 機能がフォームから入力されたデータを消去しないようにするにはどうすればよいですか?

アプリのスクリーンショットは次のとおりです。

ここに画像の説明を入力

asp フロント エンド コード:

                    <asp:RequiredFieldValidator ID="CarrierValidator" runat="server" Text="*"
                        ErrorMessage="Select At Least 1 Carrier"  ControlToValidate="lbCarriers"
                        ValidationGroup = "ValidationGroup" ForeColor="Red" ></asp:RequiredFieldValidator>

        </td>
    </tr>
            <tr>
        <td class="style1">
            Bundles:<br />
            <font size="1">*Hold Ctrl Key Down to Select Multiple Bundles</font></td>
        <td bgcolor="#ffffff" class="style6">
            <asp:ListBox ID="bundles" SelectionMode="Multiple" runat="server" Height="86px" 
                Width="250px" Enabled="True" 
                ValidationGroup="ValidationGroup">
            </asp:ListBox>

vb.net コードビハインド:

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

        If Not IsPostBack Then

            'testing lines

            If MCshort = "" Then
                arryCarriers = proxy.GetCarrierNames(My.Settings.UserID, My.Settings.Password)
                arryMccompanies = proxy.GetMarketingCompanyNames(My.Settings.UserID, My.Settings.Password)
                GetMarketingCompanies()
                GetCarriers()

                'For Each item In arryCarriers
                '    If item.CarrierNameShort = "MOO" Or item.CarrierNameShort = "GBR" Then
                '        lbCarriers.Items.Add(String.Format("{0} | {1} | {2}", item.CarrierID, item.CarrierNameLong, item.CarrierNameShort))
                '    End If
                'Next

                For Each item In arryMccompanies
                    If item.MarketingCompanyShort = MCshort Then
                        MCNameLong = item.MarketingCompanyName.ToString

                    End If
                Next
            End If

            Dim splt() As String = User.Identity.Name.ToString.Split("\")
            MCshort = splt(0)
            ' mcShort = "AMG"
            txtMarketerName.Text = splt(1)

        Else

            Dim splt() As String = User.Identity.Name.ToString.Split("\")
            MCshort = splt(0)
            ' mcShort = "AMG"
            txtMarketerName.Text = splt(1)
            GetBundles()

        End If
    Catch ex As Exception
        WriteToEventLog(ex.Message, "Page_Load-Method", EventLogEntryType.Error, "aComp-utility")
    End Try

End Sub

ご覧いただきありがとうございます。

4

1 に答える 1

0

コントロールは動的に構築されていますか? そうでない場合は、単にビューステートを有効にします。

于 2011-07-06T20:08:48.520 に答える