所以我試圖從另一個下拉列表中選擇一個下拉列表。我測試了我正在使用的存儲過程,並在輸入值時獲得正確的結果。我知道有很多這樣的問題,但似乎沒有解決我的問題。從第二個下拉列表中選擇下拉菜單
protected void Page_Load(object sender, EventArgs e)
{
DataTable environments = new DataTable();
var connection = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connection))
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT Environment FROM Environments", conn);
adapter.Fill(environments);
ddlEnvironment.Items.Insert(0, new ListItem(String.Empty, String.Empty));
ddlEnvironment.SelectedIndex = 0;
ddlEnvironment.DataSource = environments;
ddlEnvironment.DataTextField = "Environment";
ddlEnvironment.DataValueField = "Environment";
ddlEnvironment.DataBind();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter adapter2 = new SqlDataAdapter();
DataTable servers = new DataTable();
cmd = new SqlCommand("sp_EnvironmentSelection", conn);
cmd.Parameters.AddWithValue("@Environment", ddlEnvironment.SelectedValue);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
adapter2.SelectCommand = cmd;
adapter2.Fill(servers);
ddlServer.Items.Insert(0, new ListItem(String.Empty, String.Empty));
ddlServer.SelectedIndex = 0;
ddlServer.DataSource = servers;
ddlServer.DataTextField = "ServerName";
ddlServer.DataValueField = "ServerIP";
ddlServer.DataBind();
}
}
問題是,無論我在第一個下拉列表中選擇什麼,我都沒有在第二個下拉列表中得到任何選擇。
這裏是存儲過程,如果需要的話。
@Environment nvarchar(50)
AS
BEGIN
SET NOCOUNT ON
SELECT Server.ServerName, Server.ServerIP, Environments.Environment
FROM Server
INNER JOIN Environments
ON
Environments.Environment=Server.Environment
WHERE [email protected]
END
回發是否發生?當您更改第一個下拉列表時,Page_Load是否會運行? – GendoIkari
另外,你有代碼處理ddlEnvironment更改事件?這是你綁定第二個下拉列表的位置,而不是在page_load – GendoIkari
我需要回發的位置?在頁面加載開始或下拉更改後?我已經將第二個下拉列表添加到第一個下拉列表的已更改事件中。 – maltman