首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SelectedIndex不会更改SharePoint asp DropDownList

SelectedIndex不会更改SharePoint asp DropDownList
EN

Stack Overflow用户
提问于 2019-05-23 20:37:57
回答 2查看 36关注 0票数 0

我正在写一个SharePoint应用程序,并有一个下拉列表的问题。它的SelectedIndex没有改变。我读了很多问题和答案,他们建议在true中使用IsPostBackEnableViewState。我两个都做了,但都没有成功。

ASP代码:

代码语言:javascript
运行
复制
<div class="value">
    <asp:DropDownList ID="groupingDropDownList" runat="server" EnableViewState="True" OnSelectedIndexChanged="groupingDropDownList_SelectedIndexChanged" AutoPostBack="true" />
</div>

C#代码:

代码语言:javascript
运行
复制
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
            {                
                groupingDropDownList.DataSource = sourceList.Select(x => new { x.Name, Value = x });
                groupingDropDownList.DataTextField = "Name";
                groupingDropDownList.DataValueField = "Value";
                groupingDropDownList.DataBind();
            }
}

事件SelectedIndexChanged未激发,因为索引未更改。我在if (!Page.IsPostBack)行设置了一个断点,它总是0。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-23 21:16:10

我知道我错在哪里,是那句台词:

代码语言:javascript
运行
复制
groupingDropDownList.DataSource = sourceList.Select(x => new { x.Name, Value = x });

我总是设置等于类名的值,因为值没有改变,控件没有注意到索引的变化。

票数 0
EN

Stack Overflow用户

发布于 2019-05-23 20:59:29

在!Page.IsPostBack块中,您是第一次填充dropdown。您似乎正在尝试检测正在加载的下拉选择中的更改-这是不可能的。

因此,若要测试它,应在页的回发中或在groupingDropDownList_SelectedIndexChanged事件处理程序中进行检查。

代码语言:javascript
运行
复制
if (!Page.IsPostBack)
{                
    groupingDropDownList.DataSource 
        = sourceList.Select(x => new { x.Name, Value = x });
    groupingDropDownList.DataTextField = "Name";
    groupingDropDownList.DataValueField = "Value";
    groupingDropDownList.DataBind();
}
// Actual postback
else
{
    var test = groupingDropDownList.SelectedValue;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56275426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档