簡體   English   中英

無法從下拉列表中獲取值,c#

[英]Not able to get value from drop down list, c#

在頁面加載中,我正在使用SQL加載一個帶有postgreSQL數據庫名稱的下拉列表。 稍后在代碼中我想將下拉列表中的選定值保存為字符串變量。 這不會發生。 發生的事情是列表中的第一個值(索引0)始終保存,無論我選擇了哪個。

Heres是頁面加載(工作正常):

 protected void Page_Load(object sender, EventArgs e)
 {
     NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;Database=SYS;User Id=postgres;Password=postgres;");
     conn.Open();
     NpgsqlCommand command = new NpgsqlCommand("SELECT name FROM tbl_syv ORDER BY name", conn); 
     NpgsqlDataReader dr = command.ExecuteReader();
     while (dr.Read())
     {
         ddPersons.Items.Add((string)dr["name"] + " " + " ");
     }
}

這是Button1_Click。 我想將所選值保存到字符串變量syv中

protected void Button1_Click(object sender, EventArgs e)
{
    string syv = ddPersons.SelectedItem.Text;
    string name = txtName.Text;
    int studentid = 0;

    NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;Database=sSYS;User Id=postgres;Password=postgres;");
    conn.Open();

    string sql = "SELECT id FROM tbl_student WHERE name = '" + name + "'";
    NpgsqlCommand command = new NpgsqlCommand(sql, conn);
    NpgsqlDataReader dr = command.ExecuteReader();
    while (dr.Read())
    {
         studentid = (int)dr["id"];

    }
}  

我努力了

string syv = ddPersons.SelectedItem.Text;
string syv = ddPersons.SelectedItem.Value;
string syv = ddPersons.Text;
string syv = ddPersons.SelectedValue;

可能是ViewState正在保存頁面的狀態。 為什么不在Page_Load方法中包含以下行:

if ( !IsPostBack)
{    
     NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;Database=SYS;User Id=postgres;Password=postgres;");
     conn.Open();
     NpgsqlCommand command = new NpgsqlCommand("SELECT name FROM tbl_syv ORDER BY name", conn); 
     NpgsqlDataReader dr = command.ExecuteReader();
     while (dr.Read())
     {
         ddPersons.Items.Add((string)dr["name"] + " " + " ");
     }
}

每次有人點擊按鈕時,它都會阻止Page_Load填充重復項,並阻止ViewState干擾控件的狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM