选择用户:<asp:dropdownlist id="DL_Big" runat="server" Width="120px"></asp:dropdownlist>
<asp:button id="SearchBtn" onclick="SearchBtn_Click" runat="server" Text="搜索"></asp:button>用户列表<asp:Button ID="yhlbBtn" Runat="server" Text="设定" onclick="btnclick"></asp:Button>
后台:
public void SearchBtn_Click(Object sender, EventArgs E) 
{

SearchYhName=DL_Big.SelectedItem.Text.ToString();
SearchYhId=DL_Big.SelectedItem.Value.ToString();

                }public void btnclick(Object sender, EventArgs E) 
{
  SearchYhName这里取不到值,
  SearchYhId这里取不到值,
}

解决方案 »

  1.   

    两种解决方案将 两变量设为静态变量或用viewstate保存
      

  2.   

    两个button的click就是两次请求,两次请求的变量,如果没有放到页面上保存,在请求结束的时候就没有了。除非你把SearchYhName和SearchYhId定义为静态变量
    或者存到viewstate里。
      

  3.   

    你使用了AutoPostBack,如果不把List的数据保存在页面上,Button回传的时候就无法取得值了,
    可以设一个隐藏变量保存你的List在Postback的时候地选中值
      

  4.   

    SearchYhName是这样的,public string SearchYhName
      

  5.   

    public string SearchYhName
    {
    get
    {
    return Convert.ToString(ViewState["SearchYhName"]);
    }
    set
    {
    ViewState["SearchYhName"]= value;
    }
    }
      

  6.   

    asp.net夜话之八:数据绑定控件
    在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
      

  7.   

    DropDownList控件
    DropDownList控件是一个相对比较简单的数据绑定控件,它在客户端被解释成<select></select>这样的HTML标记,也就是只能有一个选项处于选中状态。
    DropDownList控件常见属性:
    AutoPostBack属性:这个属性的用法在讲述基本控件的时候已经讲过,是用来设置当下拉列表项发生变化时是否主动向服务器提交整个表单,默认是false,即不主动提交。如果设置为true,就可以编写它的SelectedIndexChanged事件处理代码进行相关处理(注意:如果此属性为false即使编写了SelectedIndexChanged事件处理代码也不会马上起作用)。
    DataTextField属性:设置列表项的可见部分的文字。
    DataValueField属性:设置列表项的值部分。
    Items属性:获取控件的列表项的集合。
    SelectedIndex属性:获取或设置 DropDownList 控件中的选定项的索引。
    SelectedItem属性:获取列表控件中索引最小的选定项。
    SelectedValue属性:取列表控件中选定项的值,或选择列表控件中包含指定值的项。因为在实际开发中,用户希望直观地看见选中哪个选项,而在操作数据库的时候我们更希望直接以该值对应的编号来操作,利用DataTextField属性和DataValueField属性就可以很方便地做到这一点,这两个属性通常是数据源中的某个字段名(如果DataSource属性是DataTable或者是DataView的话)或者范型集合中实体的属性(如果DataSource属性是System.Collections.Generic.List<T>的话,则可以指定为T的属性)。
    下面是DropDownList控件的例子,依然用到的是第六章中创建的表(本代码采用了单页模式):
      

  8.   

    绑定的时候:this.DL_Big.DataValueField = "ID";
    this.DL_Big.DataTextField = "Name";//显示的内容取值时:string strId = this.DL_Big.Items[DL_Big.SelectedIndex].Value.Tostring();//取ID
    string strName = this.DL_Big.SelectedValue.ToString();//显示的值
      

  9.   


    要定义为属性或直接用viewstate操作或用隐藏控件保存。public string SearchYhName
    {get ... set ...}