当前位置:  开发笔记 > 编程语言 > 正文

DropdownList.selectedIndex总是0(是的,我确实有!isPostBack)

如何解决《DropdownList.selectedIndex总是0(是的,我确实有!isPostBack)》经验,为你挑选了1个好方法。

(向下滚动到帖子底部以找到解决方案.)

有一个包含Datalist的asp.net页面.在这个数据列表中,有一个包含下拉列表的模板,每次数据列表中都填充了一个项目,就会调用一个ItemCreatedCommand.itemCreatedCommand负责数据绑定下拉列表.

我认为问题出在这里,我正在使用ItemCreatedCommand填充它 - 但奇怪的是,如果我选择颜色"绿色",页面将自动回复,我将看到下拉列表仍然是绿色,但是当试图使用它的SelectedIndex时,我总是得到0 ......

protected void DataListProducts_ItemCreatedCommand(object
    source, DataListItemEventArgs e)

 var itemId = (String)DataListProducts.DataKeys[e.Item.ItemIndex];
 var item = itemBLL.GetFullItem(itemId); 

 var DropDownListColor = (DropDownList)e.Item.FindControl("DropDownListColor");

 //Also tried with :
 //if(!isPostBack) {

 DropDownListColor.DataSource = item.ColorList;
 DropDownList.Color.Databind();

 // } End !isPostBack)

    Label1.test = DropDownListColor.SelectedIndex.toString();
 // <- THIS IS ALWAYS 0! *grr* 

我已经缩小了代码以供查看,但你仍然可以看到我正在尝试做什么:)我之所以这样做的原因,并没有直接为aspx-page声明颜色的数据源,是因为我需要运行一个测试if(showColors),但是我不想把代码放在html页面上,我认为应该在代码后面的文件中.

编辑:在尝试改变SelectedIndexChange之后 - 我现在脑子里有一个"逻辑"混乱 - 我如何改变数据主义者内部的元素?因为,据我所知 - 我没有办法检查这个特定下拉列表属于的数据列表中的哪些项目......或者?我将尝试一些方法,看看我最终得到了什么;)但请发表你对这个问题的想法:)

解:

要么将事件冒泡到ItemCommand,要么处理事件,获取发件人父级(这是一个datalistItem并操纵那里的元素.

 protected void DropDownListColor_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList dropDownListColor = (DropDownList)sender;
            DataListItem dataListItem = (DataListItem)dropDownListColor.Parent;

            var item = items[dataListItem.ItemIndex];
            var color = item.ItemColor[dropDownListColor.SelectedIndex];

            var LabelPrice = (Label)dataListItem.FindControl("LabelPrice");
            LabelPrice.Text = color.Price; 
        }

devio.. 9

当DataList是数据绑定时,尚未处理AutoPostBack,即ItemCreated事件中的值仍然是原始值.

您需要处理下拉控件的SelectedIndexChange事件.



1> devio..:

当DataList是数据绑定时,尚未处理AutoPostBack,即ItemCreated事件中的值仍然是原始值.

您需要处理下拉控件的SelectedIndexChange事件.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有