gpt4 book ai didi

c# - ASP.NET DropDownList SelectedIndex 在第一个元素上未更改

转载 作者:行者123 更新时间:2023-12-02 17:54:20 24 4
gpt4 key购买 nike

我曾经认为我的c#编程还不错,但今天我严重质疑我的头脑,这么小的东西正在打败我......

我正在尝试让 DropDownList 正常工作,但我们今天进展不顺利。我在 ascx 控件中有一个简单的 DropDownList,它动态加载到 aspx 页面中

<asp:DropDownList ID="ddl_SortBy" runat="server" AutoPostBack="true">             
<asp:ListItem Value="0">Sort Alphabetically A to Z</asp:ListItem>
<asp:ListItem Value="1">Sort Alphabetically Z to A</asp:ListItem>
</asp:DropDownList>

以及一些背后的代码..

    private short SortBy = 0;

protected void Page_Load(object sender, EventArgs e)
{
this.ddl_SortBy.SelectedIndex = -1;
this.ddl_SortBy.SelectedIndexChanged += new EventHandler(ddl_SortBy_SelectedIndexChanged);

if (!IsPostBack)
SearchDirectory();
}

public void ddl_SortBy_SelectedIndexChanged(object sender, EventArgs e)
{
SortBy = Convert.ToInt16(this.ddl_SortBy.SelectedItem.Value);
SearchDirectory();
}

我永远无法获得第一个项目来触发所选索引更改事件 - 因为未调用 SearchDirectory() 函数。我可以理解,可能的情况是,当控件加载时,第一个项目被选中,因此在选择时,索引实际上并没有改变。

我尝试将所选项目索引设置为 -1,并在页面加载时设置 ClearSelection(),但没有成功。

有什么想法吗?谢谢

最佳答案

每次回发时,您总是将 SelectedIndex 重置为 -1:

this.ddl_SortBy.SelectedIndex = -1;

所以也将其放入回发检查中:

if (!IsPostBack)
{
this.ddl_SortBy.SelectedIndex = -1;
SearchDirectory();
}

关于c# - ASP.NET DropDownList SelectedIndex 在第一个元素上未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com