0
我使用代碼後面的一些編程控件來填充一個ascx Panel控件,但我無法弄清楚爲什麼'SelectedValue'屬性沒有設置爲我所期望的。DropDownLists的SelectedValue設置不正確
我有這樣的代碼:
int i = 0;
{
var row = new Panel {ID = string.Format("row_{0}", i)};
var ddl = new DropDownList();
ddl.Items.AddRange(_templateDdl.Items.OfType<ListItem>().ToArray());
ddl.SelectedValue = "21246";
ddl.ID = string.Format("ddl_{0}", i);
row.Controls.Add(ddl);
Rows.Controls.Add(row);
}
i = 1;
{
var row = new Panel {ID = string.Format("row_{0}", i)};
var ddl = new DropDownList();
ddl.Items.AddRange(_templateDdl.Items.OfType<ListItem>().ToArray());
ddl.SelectedValue = "21240";
ddl.ID = string.Format("ddl_{0}", i);
row.Controls.Add(ddl);
Rows.Controls.Add(row);
}
的問題是,即使ID的設置是否正確,第一個的的SelectedValue始終是一樣的最後一個。
有沒有什麼辦法可以監控控件,並讓Visual Studio中斷以防其他代碼更改值?
其他任何建議,歡迎:)
也許應該提到這是一把umbraco解決方案正在做,如果它意味着什麼。
由於
當您查看您的DDL它有它的默認值的屬性? – Brian
DDL正在由代碼創建。當我在調試中逐步完成時,我可以驗證SelectedValue是否正確設置。它的行爲就好像別的東西正在改變ddl後一樣。 – henrik242
看來即使SelectedValue屬性集屬於DDL,它實際上也設置在ListItem上,在這種情況下,它是從模板ddl複製的,因此也是對同一個數組的引用。 – henrik242