DropDownList选中的值在回发时丢失

时间:2014-08-05 10:26:40

标签: c# asp.net drop-down-menu postback

在我的页面上,我在回发时丢失了下拉列表的选定值。

这是我的aspx代码。

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProjectSearch.aspx.cs" Inherits="Site.Templates.ProjectSearch" MasterPageFile="~/Site/Templates/Framework/Base.master" 
    EnableViewState="true"%>

<asp:Content ID="Content1" ContentPlaceHolderID="Content" runat="server">

    <div>

            <ul>
                <li class="filter">
                    <asp:DropDownList runat="server" ID="m_Filter" CssClass="form-control"/>
                </li>
                <li class="button">
                    <asp:LinkButton class="button-dark-orange" ID="m_search" runat="server" OnClick="m_search_click" >
                        Click
                    </asp:LinkButton>
                </li>

            </ul>
    </div>

在我的代码隐藏中,除了按钮点击之外别无其他。

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            BindDropdown();
        }
    }

    public void BindDropdown()
    {
        try
        {
            List<int> ds = Filter.GetData()
            m_filter.DataSource = ds;
            m_Filter.DataBind();
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }

    protected void m_search_click(object sender, EventArgs e)
    {
        Response.Write(m_Filter.SelectedIndex);
    }

它总是写0.任何帮助?

1 个答案:

答案 0 :(得分:-1)

只添加一些东西

<asp:DropDownList runat="server" ID="m_Filter" CssClass="form-control" AutoPostBack="true" />

在文件后面的代码中编写belove代码

        ddlproduct.DataSource = your method;
        ddlproduct.DataTextField = "text";
        ddlproduct.DataValueField = "value";
        ddlproduct.DataBind();