1

コードであるASPウィザード内に2つのリストボックスコントロールがあります:

<asp:Wizard DisplaySideBar="False" ID="Wizard1" runat="server" ActiveStepIndex="1" BackColor="#F7F6F3" BorderColor="#CCCCCC" 
                                    BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" 
                                    Font-Size="0.8em" OnFinishButtonClick="OnFinishButtonClick"
                                    OnNextButtonClick="savePassword"  >

<HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" 
    Font-Size="0.9em" ForeColor="White" HorizontalAlign="Left" />
<NavigationButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" 
    BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" 
    ForeColor="#284775" />
<SideBarButtonStyle BorderWidth="0px" Font-Names="Verdana" ForeColor="White" />
<SideBarStyle BackColor="#7C6F57" BorderWidth="0px" Font-Size="0.9em" 
    VerticalAlign="Top" />

<StepNavigationTemplate>
    <asp:Button ID="StepPreviousButton" runat="server" CausesValidation="False" 
        CommandName="MovePrevious" Text="Previous" Width="70px" BackColor="#FFFBFF" BorderColor="#CCCCCC"
        BorderStyle="Solid" Font-Names="Verdana"  ForeColor="#284775" BorderWidth="1px" Font-Size="0.8em"/>
    <asp:Button ID="StepNextButton" runat="server" CommandName="MoveNext" 
        Text="Next" Width="70px" BackColor="#FFFBFF" BorderColor="#CCCCCC"
        BorderStyle="Solid" Font-Names="Verdana"  ForeColor="#284775" BorderWidth="1px" Font-Size="0.8em"  />
</StepNavigationTemplate>    
<StepStyle BorderWidth="0px" ForeColor="#5D7B9D" /> 
<WizardSteps>
    <asp:WizardStep ID="WizardStep1" runat="server" Title="User Data"  
        StepType="Start">
        <%-- some code --%>
    </asp:WizardStep>
    <asp:WizardStep ID="WizardStep2" runat="server" Title="Company Data" 
        StepType="Step">
        **<table>

            <tr>
                <td class="style4">
                    <font face="tahoma" style="font-weight: bold; font-size: 10px;">Categories<div 
                        class="important">
                        *</div>
                    </font>
                </td>
                <td class="style9">
                <asp:ListBox ID="registerCompCats" runat="server" CssClass="ListBox1"
                ClientIDMode="Static" DataTextField="value" DataValueField="key"
                Rows="5" size="5" style="width:135px; size:5px;" SelectionMode="Multiple" ></asp:ListBox>
                    &nbsp;&nbsp;&nbsp;</td>
                <td class="style1">
                    <table>
                        <tr>
                            <td style="padding-left: 20px;">

                                <img id="addCat" 
                        src="images/buttons/btn_addCat.jpg" title="Add Category"  />
                            </td>
                        </tr>
                        <tr>
                            <td style="padding-left: 20px;">
                                <img id="removeCat" 
                        src="images/buttons/btn_removeCat.jpg" title="Remove Category" />
                            </td>
                        </tr>
                    </table>
                </td>
                <td>
                <asp:ListBox ID="registerCompAcats" runat="server" CssClass="ListBox2" 
                ClientIDMode="Static" DataTextField="value" DataValueField="key" ViewStateMode="Enabled"
                Rows="5" size="5" style="width:135px; size:5px; margin-top: 0px;" SelectionMode="Multiple"
                 ></asp:ListBox>
                    &nbsp;<asp:RequiredFieldValidator ID="registerCompAcatsValidator" runat="server" 
                        ControlToValidate="registerCompAcats" Display="None" ErrorMessage="categories required "></asp:RequiredFieldValidator></td>
            </tr>

        </table>**
    </asp:WizardStep>
    <asp:WizardStep ID="WizardStep3" runat="server" Title="Final Data" StepType="Finish">
         <%-- some code --%>
    </asp:WizardStep>
</WizardSteps>

最初のリストボックスのデータはページの読み込みに付属し、2番目のデータはJavaスクリプトcodを使用して中央のボタンを押すことで行われ、それがコードです:

$(function () {




//            for (var i = 0; i < x.length; i++) {
//                $(x[i]).keyup(function (event) {
//                    if (event.keyCode == 13) {
//                        $(".SearchBarControlBtn").click();
//                    }
//                });

//            }
$('#addCat').click(function () {
    $(".ListBox1 > option:selected").appendTo(".ListBox2");        
    sortlist(".ListBox1 > option");
    sortlist(".ListBox2 > option");
    selectAll();

});


$('#removeCat').click(function () {
    $(".ListBox2 > option:selected").appendTo(".ListBox1");
    sortlist(".ListBox1 > option");
    sortlist(".ListBox2 > option");
    selectAll();


});

});

そのコードはページでうまく機能し、データは両方のリストボックス間で移動されますが、コードの背後にあるページに移動して2番目のリストボックスのコンテンツを保存すると、空であることがわかります

問題はどこだ ??

注:同じコード(HTML、javascript)を使用しますが、ステップウィザードを削除すると、2番目のリストボックスのデータがうまく表示されます

4

1 に答える 1

2

はい、ビューステートにないため、空になります。ポストバックで ajax を実行して、リスト項目をリストに追加できます。次に、リストボックスに表示されます。詳細については、こちらをご覧ください: http://msdn.microsoft.com/en-us/library/ms972976.aspx

于 2013-01-07T21:53:19.233 に答える