2010-08-16 84 views
4

我有一个DropDownList中继器。我在itembound事件中设置此列表的数据源并设置selectedindex。当我调试selectedindex被设置,但是当页面完成加载所有项目时,默认项目被选中。在转发器中设置Dropdownlist的Selectedindex/selectedvalue不起作用

这是我的代码:

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     var ddl = (DropDownList)e.Item.FindControl("DataFeedItems"); 
     ddl.DataSource = FilterDropDownData(); 
     ddl.DataTextField = "ColumnName"; 
     ddl.DataValueField = "ColumnName"; 
     ddl.DataBind(); 
     ddl.SelectedValue = "Select"; 
     ddl.SelectedIndex = 28; 
    } 
protected DataTable FilterDropDownData() 
    { 
     var importedFeedColums = I make the table here; 
     DataRow newRow = importedFeedColums.NewRow(); 
     newRow[0] = "Selecteren"; 
     importedFeedColums.Rows.Add(newRow); 
     return importedFeedColums; 
    } 

我阿尔斯试图使用甚至下拉列表中的数据绑定,但这没有工作之一:

protected void DataFeedItems_DataBound(object sender, System.EventArgs e) 
    { 
     var ddl = (DropDownList) (sender); 
     ddl.SelectedValue = "Selecteren"; 
     ddl.Items[28].Selected = true; 

    } 

<asp:Repeater ID="Repeater1" runat="server" 
      onitemdatabound="Repeater1_ItemDataBound"> 
      <ItemTemplate> 
       <li> 
       <label><%# DataBinder.Eval(Container.DataItem, "ColumnName") %></label>      
        <asp:DropDownList ID="DataFeedItems" ClientIDMode="Static" runat="server" DataSource='<%# FilterDropDownData() %>' 
         DataTextField="ColumnName" DataValueField="ColumnName" OnDataBound="DataFeedItems_DataBound" > 
        </asp:DropDownList> 
        <input id="Hidden1" runat="server" clientidmode="Static" type="hidden" value='<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>' /> 
       </li> 
      </ItemTemplate> 
     </asp:Repeater> 

当我张贴表单我可以得到每个DropDownList的selectedvalue和文本。我在做什么错误

回答

1

FilterDropDownData()返回什么?

你试过这个吗?

ddl.Items.FindByValue("Selecteren").Selected = true; 

ddl.Items.FindByText("Selecteren").Selected = true; 
+0

不工作要么:( – Ivo 2010-08-16 14:15:49

+0

能在你身后张贴您整个代码和你的整个aspx页面此外,如何是FilterDropDownData()调用实现 – 2010-08-16 15:34:07

+0

我加入了一些代码 – Ivo 2010-08-17 06:34:18

1

因为下拉不能选择多个项目这种方法将失败。并设置“Selected = true”将完全相同。

只有通过使用DropDownList的SelectedIndex属性才能将项目设置为选定项目。

例:ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue("Selecteren"));