我有一个基于数据的下拉列表,默认选择由用户会话设置。它工作正常,但如果我尝试在列表上选择一个不同的项目,它会跳回到默认值。我正在使用visual studio 2015,web form,asp.net
我尝试以2种方式选择默认项目,但仍然存在同样的问题
if (Session["plyer2"] != null) {
string DropDownListSelected = Session["plyer1"].ToString();
DropDownList1.ClearSelection();
DropDownList1.Items.FindByValue(DropDownListSelected).Selected = true;
DropDownList2.SelectedValue = Session["plyer2"].ToString(); }
过去2天一直在谷歌搜索没有找到帮助
DDL是autopostback
代码位于.aspx.cs文件中:protected void Page_Load(object sender, EventArgs e)
数据绑定在.aspx文件中
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource5" DataTextField="forshow" DataValueField="forshow" AppendDataBoundItems="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Value="1">בחר גארד</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [forshow] FROM [players] WHERE ([position] = @position)">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="גארד" Name="position" QueryStringField="גארד" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
答案 0 :(得分:0)
这不是问题的真正答案,但由于我使用会话选择项目,我添加
Session.Abandon();
所以它取消IF语句下一页加载,这对我来说已经足够了