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