c# - 客户端 nit 中的列表框更改出现在服务器端,asp 向导无法正常工作

标签 c# javascript jquery asp.net

我有两个带有 asp 向导的列表框控件 那是代码:

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

第一个列表框的数据带有页面加载,第二个列表框的数据通过使用java脚本代码按下中间的按钮完成,这就是代码:

$(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();


});

});

该代码在页面中运行良好,数据在两个列表框之间移动 但是当我转到代码后面的页面以保存第二个列表框的内容时,我发现它是空的

问题出在哪里??

注意:使用相同的代码(HTML、javascript)但删除步骤向导,第二个列表框中的数据显示良好

最佳答案

是的,它们将是空的,因为它们不在 View 状态中。 您可以使用回发执行一些 ajax 以在列表中添加列表项。 然后它们将出现在您的列表框中。 您可以在此处阅读更多信息: http://msdn.microsoft.com/en-us/library/ms972976.aspx

关于c# - 客户端 nit 中的列表框更改出现在服务器端,asp 向导无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13246992/

相关文章:

javascript - 如果所有 td.has_pais_dist 都有文本,则返回 "true",否则返回 "false"

jquery - 实现 jquery 自定义过滤器的巧妙方法(根据父类进行选择)?

c# - 如何使用 Substring 返回第一个字符后所有值的整数

javascript - JS 异步函数停止页面加载

c# - 忽略 AutoMapper 中的属性?

javascript - 使用数组时 JavaScript 中出现意外输出

javascript - 检测到错误的屏幕分辨率 - 为什么检测到较小的分辨率?

javascript - 如何用逗号计算金额

C#:如何通过窗体及其控件拖动一个?

c# - Asp.net mvc 4 依赖解析器