我有两个列表框控件和一个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>
</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>
<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脚本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();
});
});
该代码适用于页面和数据在两个列表框之间移动 但是当我转到页面后面的代码来保存第二个列表框的内容时,我发现它是空的
问题在哪里?
注意:使用相同的代码(HTML,javascript)但删除步骤向导,第二个列表框中的数据显示正常
答案 0 :(得分:2)
是的,它们将是空的,因为它们不在视图状态中。 您可以使用回发执行一些ajax以在列表中添加列表项。 然后它们将出现在您的列表框中。 你可以在这里阅读更多信息: http://msdn.microsoft.com/en-us/library/ms972976.aspx