我有一个DropDownList的控件dlCustomer.他从后台的T_Customer读取数据。表结构如下:
CustID      FullName
  1           Ray
  2           Green然后绑定的代码如下:
private void Page_Load(object sender, System.EventArgs e)
{  
   BindCustomer();
   ListItem listitem=new ListItem();
   listitem.Text="选择客户";
   listitem.Value="";
   dlCustomer.Items.Insert(0,listitem);
}private void BindCustomer()
{
   SqlDataReader dr=null;
   ygmis.Components.Order order=new ygmis.Components.Order();
   dr=order.GetCustCode();
   dlCustomer.DataSource=dr;
   dlCustomer.DataTextField="FullName";
   dlCustomer.DataValueField="CustCode";
   dlCustomer.DataBind();
}另外我的GetCustCode()方法如下:
public SqlDataReader GetCustCode()
{
   SqlConn.SqlConn db=new SqlConn.SqlConn();
   SqlDataReader dr=null;
   db.RunProc("sp_GetCustCode",out dr);
   return dr;
}存储过程如下:
CREATE PROCEDURE sp_GetCustCode 
AS
BEGIN
SELECT FullName,CustCode From Customer WHERE CustCode<>"" ORDER BY FullName 
END
GO然后
SqlParameter[] prams={
                      db.MakeInParam("@CustCode",SqlDbType.VarChar,250,dlCustomer.SelectedValue.ToString()),
                     };
不知道为什么,到数据库中的值就是为空!~
问了众多高手,但都没有解决这个问题!~
在线等回复!~
谢谢!~~~~

解决方案 »

  1.   

    你每次 Page_Load 时都重新加载了 DropDownList 。 DropDownList 怎么可能保持住状态呢。
      

  2.   

    把PageLoad里面的代码写在
    if(!IsPostBack)
    {
    }
    里面
      

  3.   

    谢谢!~
    问题已经解决!~
    我是新手,希望知道为什么加了if(!IsPostBack)问题就解决了呢?!~
      

  4.   

    如果不加这个,你每次显示这个页面,都会执行load里面的语句,
    本来你是选中了某项,但是你点击按钮,执行事件的时候,用重新邦定了,所以显示的永远是第一项if(!IsPostBack)里面的代码是在第一次打开页面或者强制刷新的时候才执行的
      

  5.   


    BindCustomer();
       ListItem listitem=new ListItem();
       listitem.Text="选择客户";
       listitem.Value="";
       dlCustomer.Items.Insert(0,listitem);
    这些放入
    if(!IsPostBack)