我在包含名爲ddlAggerationUnitId的DropDownList的自定義用戶控件中有以下代碼。 DropDownList在Page_Load()事件上是DataBind的。 「價值」設置爲40,它是存在的。如果我刪除了set方法的邏輯,頁面將加載並選擇正確的項目,但是如果值爲假,頁面會引發異常。我想通過在設置它之前查看該值是否存在來避免這種異常,因此爲什麼邏輯是必需的。ASP.NET上的FindByValue DropDownList
現在看起來編譯器正在評估if語句爲false,即使我知道它應該是真的。
public long? Value
{
get { return Int64.Parse(ddlAggerationUnitId.SelectedItem.Value); }
set
{
if (ddlAggerationUnitId.Items.FindByValue(value.ToString()) != null)
{
ddlAggerationUnitId.SelectedValue = value.ToString();
}
}
}
任何幫助將不勝感激!謝謝!
編輯:這是我的Page_Load()事件:
protected void Page_Load(object sender, EventArgs e)
{
ddlAggerationUnitId.DataSource = ExternalAccount.GetAggregationUnits();
ddlAggerationUnitId.DataTextField = "Value";
ddlAggerationUnitId.DataValueField = "Key";
ddlAggerationUnitId.DataBind();
}
我們可以看到您的Page_Load你在哪裏設置值和數據綁定? – Marcie 2010-11-30 18:20:37
使用try catch環繞它,並在catch ddlAggerationUnitId.SelectedValue = -1中執行此操作。只是一個解決辦法。 – franklins 2010-11-30 18:21:12
編輯上面的問題以包含Page_Load。 – mhenry 2010-11-30 18:39:19