[英]ASP.NET MVC 5 DropDownList selectedindexchanged
我想選擇一台服務器,只獲得所選服務器的數據庫名稱,但是在此代碼中..給了我所有服務器的所有數據庫! 請問如何解決?
控制者
List<SelectListItem> allServer = new List<SelectListItem>();
List<SelectListItem> alldatabases = new List<SelectListItem>();
allServer.Add(new SelectListItem() { Text = "Please Select DataBase...", Value = "", Selected = true });
System.Data.Sql.SqlDataSourceEnumerator instance = System.Data.Sql.SqlDataSourceEnumerator.Instance;
System.Data.DataTable dt = instance.GetDataSources();
List<string> ddlInstances = new List<string>();
foreach (DataRow dr in dt.Rows)
{
dr["InstanceName"]));
ServerConnection Conn;
Conn = new ServerConnection();
Conn.ServerInstance = string.Concat(dr["ServerName"], "\\", dr["InstanceName"]);
allServer.Add(new SelectListItem() { Text = Conn.ServerInstance, Value = Conn.ServerInstance, Selected = true });
Server Ser = new Server(Conn);
foreach (Database db in Ser.Databases)
{
alldatabases.Add(new SelectListItem() { Text = db.Name, Value = db.Name, Selected = false });
}
視圖
@using (Html.BeginForm("Index", "Connect", FormMethod.Get))
{
Server Names
@Html.DropDownList("SerNames")
DB Names
@Html.DropDownList("DBNames")
當服務器下拉列表更改中的選定選項用ajax
調用控制器中的某個操作時,該操作最多可通過javascript
和ajax
完成,該操作返回一個帶有下拉列表的PartialView
,下拉列表中填充了所選服務器的數據庫列表。
使用上面的代碼,將列出所有可用的服務器,因為
System.Data.Sql.SqlDataSourceEnumerator.Instance
獲取System.Data.Sql.SqlDataSourceEnumerator的實例,該實例可用於檢索有關可用SQL Server實例的信息。
因此,如果只想擁有一個SQL Server實例,則必須設置一些條件來獲取一個實例進行迭代。 例如”
foreach (DataRow dr in dt.Rows)
{
if(!dr["InstanceName"]=="YourInstanceName"){ continue;} else {//Do you thing }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.