我有一个asp.net的下拉列表控件。我想跟踪下拉列表中选择的项目。让我展示一下我做了什么。
这是DropdownList控件:
<asp:DropDownList ID="Dd_Cat" runat="server"
DataValueField="CatId" DataTextField="CatName"
OnSelectedIndexChanged="wtf" >
</asp:DropDownList>
这是用于从数据库填充dropdownlist
的代码。
protected void bindDropdown()
{
string mystr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
SqlConnection con = new SqlConnection(mystr);
con.Open();
SqlCommand cmd = new SqlCommand("AddCat", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@action", "select");
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
Dd_Cat.DataSource = ds;
Dd_Cat.DataBind();
con.Close();
con.Dispose();
}
onselected
控件的dropdownlist
属性:
protected void wtf(object sender, EventArgs e)
{
string st = Dd_Cat.SelectedValue;
}
这总是显示价值&#34; 1&#34; nomatter是什么选择。请帮助。
答案 0 :(得分:3)
我假设您在bindDropdown
中呼叫Page_Load
而未使用!IsPostBack
- 请检查。然后,您始终加载默认值,并且SelectedIndexChanged
事件未被触发。
因此,如果EnableViewState
设置为true
(默认值),请使用此选项:
protected void Page_Load(Object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
// page is loaded the first time, load from database
bindDropdown();
}
}