2010-08-16 86 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"));