2011-06-26 11 views
-1

私はこの方法でダイナミックDropDownListを作ってみましょうよ:MakinkgダイナミックDropDownListの

<form id="form1" runat="server"> 
<asp:DropDownList ID="ddlCategory" runat="server" AutoPostBack="True" 
    onselectedindexchanged="CategoryDropList_SelectedIndexChanged" /> 
</form> 

void DropListInit() 
{ 
    Dictionary<string, string> dic = new Dictionary<string, string>(); 
    dic.Add("1","apple"); 
    dic.Add("2","banana"); 
    ddlCategory.DataSource = dic; 
    ddlCategory.DataTextField = "value"; 
    ddlCategory.DataValueField = "key"; 
    ddlCategory.DataBind(); 
} 

protected void Page_LoadComplete(object sender, EventArgs e) 
{ 
    DropListInit(); 
} 

protected void CategoryDropList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ddlCategory.SelectedValue = ddlCategory.SelectedValue; 
} 

、私はには、この表現が何を意味するのか、だから、この奇妙な表現ddlCategory.SelectedValue = ddlCategory.SelectedValue;せずに動作しないことを見つけますか?または私は何か間違っているのですか?

答えて

1

DropListInitをPage_loadに移動します。

protected void Page_LoadComplete(object sender, EventArgs e) 
{ 
    if (!IsPostBack)  
    { 
     DropListInit(); 
    } 
} 

これを削除します。

ddlCategory.SelectedValue = ddlCategory.SelectedValue; 

大丈夫でしょうか。

+0

もちろん、それは動作する必要があります、ありがとう。 – goog