首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将选定的下拉列表项与on事件链接到sql脚本

将选定的下拉列表项与on事件链接到sql脚本
EN

Stack Overflow用户
提问于 2022-05-06 11:51:31
回答 1查看 249关注 0票数 0

我和这件事斗争了一段时间,但没有成功。所以你的帮助是非常感谢的。

我已经从sql数据库创建了一个下拉列表。我要做的是设置一个onchange选择事件,以获取下拉列表中选择的值,并将其用作我的sql脚本中的变量,以便从数据库中获取数据。我的问题是无法从下拉列表中获取所选的项,以便显示在Controller文件中,然后将其添加到sql脚本中。我是Asp 6的新手,我真的很难理解这些变化。所有的帮助都是非常感谢的。

视图代码

代码语言:javascript
复制
@model CISIII.Models.Dropdownlist
@*
    For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
</head>
<body>
    <h1>Customer Data Update</h1>
    <form method="post"  > 
    <hr/>
    <table cellpadding="10" cellspacing="10">
        <tr>
            <td><strong>Customer Name</strong></td>
            <td>
     
          @Html.DropDownListFor(m => m.Cust1list, new SelectList(@Model.Cust1list, "Coname", "Coname"), "Select Company", htmlAttributes: new { @class = "form-control", id="coname"})
          
            </td>

            <td><input type="text" name="serviceName" value="" /></td>
        </tr>

            @{
                 if (Model.Cust2list != null)
                    {

                        foreach (var Cust in Model.Cust2list)
                        {
                            <tr>
                                <td><strong>Company Name</strong></td>
                                <td><td><input value="@Cust.Coname" id="coname" type="text"/></td>
                            </tr>


                            <tr>
                                <td><strong>First Name</strong></td>
                                <td><input value="@Cust.Fname" id="Fname" type="text"/></td>
                                <td><strong>Surname</strong></td>
                                <td><input value="@Cust.Sname" id="sname" type="text"/></td>
                            </tr>
                            <tr>
                                <td><strong>Tel</strong></td>
                                <td><input value="@Cust.Tel" id="tel" type="text"/></td>
                                <td><strong>Email</strong></td>
                                <td><input value="@Cust.Email" id="email" type="text"/></td>
                            </tr>
                            <tr>
                                <td><strong>Address</strong></td>
                                <td><input value="@Cust.Add1" id="add1" type="text"/></td>
                                <td><strong>Address</strong></td>
                                <td><input value="@Cust.Add2" id="add2" type="text"/></td>
                            </tr>
                            <tr>
                                <td><strong>Suburb</strong></td>
                                <td><input value="@Cust.Suburb" id="suburb" type="text"/></td>
                                <td><strong>State</strong></td>
                                <td><input value="@Cust.State" id="state" type="text"/></td>
                            </tr>  
                            <tr>
                                <td><strong>Post Code</strong></td>
                                <td><input value="@Cust.Pcode" id="pcode" type="text"/></td>
                                <td><strong>Where did you find Us</strong></td>
                                <td><input value="@Cust.Findus" id="findus" type="text"/></td>
                            </tr>  
                            <tr>
                                <td><strong>Product Category</strong></td>
                                <td><input value="@Cust.Prod_cat" id="prodcat" type="text"/></td>
                                <td><strong>Notes</strong></td>
                                <td><input value="@Cust.Question2" id="question2" type="text"/></td>
                            </tr>  
                            <tr>
                                <td><strong>Industry</strong></td>
                                <td><input value="@Cust.Indlist" id="ddlindustry" type="text"/></td>
                                <td><strong>Status</strong></td>
                                <td><input value="@Cust.Statlist" id="status" type="text"/></td>
                            </tr> 
                            <tr>
                                <td><strong>Start Date</strong></td>
                                <td><input value="@Cust.Start_date" id="start_date" type="text"/></td>
                                <td><strong>End Date</strong></td>
                                <td><input value="@Cust.End_date" id="end_date" type="text"/></td>
                            </tr>
                            }
                            }
                            
                        
                    }
           <tr>
           <td>
               <button onclick="GetCust2List" value"Submit">Click me</button>
               
              @* <input id="Submit" type="submit" value="submit" formaction="GetCust2List" />*@
          </td>
           </tr>
    </table>
      </form>
</body>
</html>

模型

代码语言:javascript
复制
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using System.Data.SqlClient;

namespace CISIII.Models
{
    public class Dropdownlist
    { 
        public DateTime? DtmDate { get; set; }
        public List<Status_List> Statlist { get; set; }
        public List<Product_List> Prodlist { get; set; }
        public List<Industry_List> Indlist { get; set; }
        public List<Findus_List> Findlist { get; set; }
        public List<Customers_List> Cust1list { get; set; }
        public List<NE_Cust_List> Cust2list { get; set; }
        public IActionResult? GetDetails { get; set; }
        public int SaveDetails { get; set; }    
    }

    public class Status_List
    {
        public int Id { get; set; }
        public string? Description { get; set; }
    }

    public class Product_List
    {
        public int Id { get; set; }
        public string? prod_cat { get; set; }
    }

    public class Industry_List
    {
        public int Id { get; set; }
        public string? Description { get; set; }
    }

    public class Findus_List
    {
        public int Id { get; set; }
        public string? Name { get; set; }
    }

    public class Customers_List
    {
        public int Id { get; set; }
        public string? Fname { get; set; }
        public string? Sname { get; set; }
        public string? Coname { get; set; }
        public string? Tel { get; set; }
        public string? Email { get; set; }
        public string? Add1 { get; set; }
        public string? Add2 { get; set; }
        public string? Suburb { get; set; }
        public string? State { get; set; }
        public string? Pcode { get; set; }
        public string? Findus { get; set; }
        public string? Prod_cat { get; set; }
        public string? Question2 { get; set; }
        public string? Indlist { get; set; }
        public string? Statlist { get; set; }
        public string? Start_date { get; set; }
        public string? End_date { get; set; }

    }

    public class NE_Cust_List
    {
        public int Id { get; set; }
        public string? Fname { get; set; }
        public string? Sname { get; set; }
        public string? Coname { get; set; }
        public string? Tel { get; set; }
        public string? Email { get; set; }
        public string? Add1 { get; set; }
        public string? Add2 { get; set; }
        public string? Suburb { get; set; }
        public string? State { get; set; }
        public string? Pcode { get; set; }
        public string? Findus { get; set; }
        public string? Prod_cat { get; set; }
        public string? Question2 { get; set; }
        public string? Indlist { get; set; }
        public string? Statlist { get; set; }
        public string? Start_date { get; set; }
        public string? End_date { get; set; }
    }

    public class UserDataModel
    {
        public string? Fname { get; set; }
        public string? Sname { get; set; }
        public string? Coname { get; set; }
        public string? Tel { get; set; }
        public string? Email { get; set; }
        public string? Add1 { get; set; }
        public string? Add2 { get; set; }
        public string? Suburb { get; set; }
        public string? State { get; set; }
        public string? Pcode { get; set; }
        public string? Findus { get; set; }
        public string? Prod_cat { get; set; }
        public string? Question2 { get; set; }
        public string? Indlist { get; set; }
        public string? Web { get; set; }
        public string? Statlist { get; set; }
        public string? Start_date { get; set; }
        public string? End_date { get; set; }

        public int SaveDetails()
        {
            SqlConnection con = new SqlConnection("Data Source=bhd-web2;User ID=sa;Password=Sabril01;Database=CAS; Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

            string query = "INSERT INTO Customers (fname, sname, coname, tel, email, add1, add2, suburb, state, pcode, " +
                "findus, prod_cat, question2, ddlindustry, web, status, start_date, end_date, entry_date) values ('" + Fname + "','" + Sname + "','" + Coname + "', " +
                "'" + Tel + "','" + Email + "','" + Add1 + "','" + Add2 + "','" + Suburb + "','" + State + "','" + Pcode + "','" + Findus + "','" + Prod_cat + "', " +
                "'" + Question2 + "','" + Indlist + "','" + Web + "','" + Statlist + "','" + Start_date + "','" + End_date + "', getdate())";
            SqlCommand cmd = new SqlCommand(query, con);
            con.Open();
            int i = cmd.ExecuteNonQuery();
            con.Close();
            return i;

        }       
    }
}

主计长

代码语言:javascript
复制
using Microsoft.AspNetCore.Mvc;
using CISIII.Models;
using System.Data.SqlClient;
using System.Data;
using Microsoft.AspNetCore.Mvc.Rendering;

namespace CISIII.Controllers
{
    public class HomeController : Controller
    {
        
        public IConfigurationRoot GetConnection()
        {
            var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appSettings.json").Build();
            return builder;
        }

        Dropdownlist dropdownlist = new Dropdownlist();

        public IActionResult Index()
        {
            return View();
        }

        public List<Status_List> GetStatusList()
        {
            var connection = GetConnection().GetSection("ConnectionStrings").GetSection("CAS").Value;
            SqlConnection con = new SqlConnection(connection);
            SqlCommand cmd = new SqlCommand("Select id, description From status order by description asc;", con);
            con.Open();
            SqlDataReader idr = cmd.ExecuteReader();
            List<Status_List> status = new List<Status_List>();
            if (idr.HasRows)
            {
                while (idr.Read())
                {
                    status.Add(new Status_List
                    {
                        Id = Convert.ToInt32(idr["id"]),
                        Description = Convert.ToString(idr["description"]),
                    });
                }
            }
            con.Close();


            return status;
        }

        public List<Product_List> GetProdList()
        {
            var connection = GetConnection().GetSection("ConnectionStrings").GetSection("CAS").Value;
            SqlConnection con = new SqlConnection(connection);
            SqlCommand cmd = new SqlCommand("Select id, prod_cat_name From prod_cat order by prod_cat asc;", con);
            con.Open();
            SqlDataReader idr = cmd.ExecuteReader();
            List<Product_List> products = new List<Product_List>();
            if (idr.HasRows)
            {
                while (idr.Read())
                {
                    products.Add(new Product_List
                    {
                        Id = Convert.ToInt32(idr["id"]),
                        prod_cat = Convert.ToString(idr["prod_cat_name"]),
                    });
                }
            }
            con.Close();


            return products;
        }

        public List<Industry_List> GetIndList()
        {
            var connection = GetConnection().GetSection("ConnectionStrings").GetSection("CAS").Value;
            SqlConnection con = new SqlConnection(connection);
            SqlCommand cmd = new SqlCommand("Select id, description From industry order by description asc;", con);
            con.Open();
            SqlDataReader idr = cmd.ExecuteReader();
            List<Industry_List> industry = new List<Industry_List>();
            if (idr.HasRows)
            {
                while (idr.Read())
                {
                    industry.Add(new Industry_List
                    {
                        Id = Convert.ToInt32(idr["id"]),
                        Description = Convert.ToString(idr["description"]),
                    });
                }
            }
            con.Close();


            return industry;
        }

        public List<Findus_List> GetFindList()
        {
            var connection = GetConnection().GetSection("ConnectionStrings").GetSection("CAS").Value;
            SqlConnection con = new SqlConnection(connection);
            SqlCommand cmd = new SqlCommand("Select id, cat_name From findus order by cat_name asc;", con);
            con.Open();
            SqlDataReader idr = cmd.ExecuteReader();
            List<Findus_List> find = new List<Findus_List>();
            if (idr.HasRows)
            {
                while (idr.Read())
                {
                    find.Add(new Findus_List
                    {
                        Id = Convert.ToInt32(idr["id"]),
                        Name = Convert.ToString(idr["cat_name"]),
                    });
                }
            }
            con.Close();


            return find;
        }




        public IActionResult View1()
        {
            return View();
        }


        public IActionResult Privacy()
        {
            return View();
        }

        public IActionResult updatecust()
        {
            dropdownlist.Cust1list = GetCust1List();


                return View(dropdownlist);
                                }


        public IActionResult newcust()
        {

            Dropdownlist multi_Dropdownlist = new Dropdownlist
            {
                Statlist = GetStatusList(),
                Prodlist = GetProdList(),
                Indlist = GetIndList(),
                Findlist = GetFindList(),
           
                
           

            };

            return View(multi_Dropdownlist);
        }

        [HttpPost]
        public IActionResult GetDetails()
        {


            UserDataModel umodel = new UserDataModel();

            umodel.Fname = HttpContext.Request.Form["fname"].ToString();
            umodel.Sname = HttpContext.Request.Form["sname"].ToString();
            umodel.Coname = HttpContext.Request.Form["coname"].ToString();
            umodel.Tel = HttpContext.Request.Form["tel"].ToString();
            umodel.Email = HttpContext.Request.Form["email"].ToString();
            umodel.Add1 = HttpContext.Request.Form["street_number"].ToString();
            umodel.Add2 = HttpContext.Request.Form["route"].ToString();
            umodel.Suburb = HttpContext.Request.Form["locality"].ToString();
            umodel.State = HttpContext.Request.Form["administrative_area_level_1"].ToString();
            umodel.Pcode = HttpContext.Request.Form["postal_code"].ToString();
            umodel.Findus = HttpContext.Request.Form["Findlist"].ToString();
            umodel.Prod_cat = HttpContext.Request.Form["Prodlist"].ToString();
            umodel.Question2 = HttpContext.Request.Form["question2"].ToString();
            umodel.Indlist = HttpContext.Request.Form["Indlist"].ToString();
            umodel.Web = HttpContext.Request.Form["web"].ToString();
            umodel.Statlist = HttpContext.Request.Form["Statlist"].ToString();
            umodel.Start_date = HttpContext.Request.Form["start_date"].ToString();
            umodel.End_date = HttpContext.Request.Form["end_date"].ToString();
            int result = umodel.SaveDetails();

            return View("Index");


        }

    
        public List<Customers_List> GetCust1List()
        {
            var connection = GetConnection().GetSection("ConnectionStrings").GetSection("CAS").Value;
            SqlConnection con = new SqlConnection(connection);
            SqlCommand cmd = new SqlCommand("Select * From CA_Form order by coname asc;", con);
            con.Open();
            SqlDataReader idr = cmd.ExecuteReader();
            List<Customers_List> cust1 = new List<Customers_List>();
            IEnumerable<Customers_List> cust1a = cust1;
            if (idr.HasRows)
            {
                while (idr.Read())
                {
                    cust1.Add(new Customers_List
                    {
                        Id = Convert.ToInt32(idr["id"]),
                        Coname = Convert.ToString(idr["coname"]),
                        Fname = Convert.ToString(idr["fname"]),
                        Sname = Convert.ToString(idr["sname"]),
                    });
                }
            }
            // System.Diagnostics.Debug.WriteLine(cust1.Count);
            con.Close();
            return cust1;
        }


        


        public List<NE_Cust_List> GetCust2List()

        {
           

            System.Diagnostics.Debug.WriteLine("Hello");
            var connection = GetConnection().GetSection("ConnectionStrings").GetSection("CAS").Value;
            SqlConnection con = new SqlConnection(connection);
            SqlCommand cmd = new SqlCommand("Select * From CA_Form where coname like '%Sims%'", con);
            con.Open();
            SqlDataReader idr = cmd.ExecuteReader();
          
           
           List<NE_Cust_List> cust2 = new List<NE_Cust_List>();
            IEnumerable<NE_Cust_List> cust2a = cust2;
            if (idr.HasRows)
            {
                while (idr.Read())
                {
                    cust2.Add(new NE_Cust_List
                    {
                        Id = Convert.ToInt32(idr["id"]),
                        Fname = Convert.ToString(idr["fname"]),
                        Sname = Convert.ToString(idr["sname"]),
                        Coname = Convert.ToString(idr["coname"]),
                        Tel = Convert.ToString(idr["tel"]),
                        Email = Convert.ToString(idr["email"]),
                        Add1 = Convert.ToString(idr["add1"]),
                        Add2 = Convert.ToString(idr["add2"]),
                        Suburb = Convert.ToString(idr["suburb"]),
                        State = Convert.ToString(idr["state"]),
                        Pcode = Convert.ToString(idr["pcode"]),
                        Findus = Convert.ToString(idr["findus"]),
                        Prod_cat = Convert.ToString(idr["prod_cat"]),
                        Question2 = Convert.ToString(idr["question2"]),
                        Indlist = Convert.ToString(idr["ddlindustry"]),
                        Statlist = Convert.ToString(idr["status"]),
                        Start_date = Convert.ToString(idr["start_date"]),
                        End_date = Convert.ToString(idr["end_date"]),
                    });
                }
                con.Close();
                System.Diagnostics.Debug.WriteLine("hello 2");
                System.Diagnostics.Debug.WriteLine(cust2.Count);
            }

            dropdownlist.Cust2list= cust2;  
            return cust2;
        }

        [HttpPost]
        public ActionResult ShowAllMobileDetails(Dropdownlist dl1 , FormCollection form)
        {
            string conameValue = form["coname"].ToString();

            System.Diagnostics.Debug.WriteLine(conameValue);

            return View(dl1);
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-09 06:09:24

在Asp.Net核心中,我们可以使用SelectListItem将数据从控制器传递到页面中的dropdownlist,因为您的模型中有太多的属性,使用它们编写演示非常复杂,所以我在这里编写了一个简单的演示,设置了一个onchange以下拉列表。

代码语言:javascript
复制
//write a simple model and hard code here
List<Student> students = new List<Student>
        {
            new Student{
                Id = "0",
                Name = "AAA"
            },
            new Student
            {
                Id = "1",
                Name = "BBB"
            },
            new Student
            {
                Id = "2",
                Name = "CCC"
            },
            new Student 
            {
                Id = "3", 
                Name ="DDD"
            }
        };

        public IActionResult Index()
        {
            List<SelectListItem> test = new List<SelectListItem>();
            foreach(var student in students)
            {
                //add value to dropdownlist

                test.Add(new SelectListItem { Text = student.Name, Value = student.Id });
            }

            ViewBag.list = test;
            return View();
        }

视图

代码语言:javascript
复制
<select asp-items="ViewBag.list" onchange="change(this.value)"></select>

@*set an onchange event to get the value of dropdownlist and send it to the specified action*@
@section Scripts
{
    <script>
        function change(value){
            
             var Id = {
                 'Id':value
             };
             $.ajax({          
                type: "Post",
                url: "/Home/GetId",
                data: Id,  
             })                          
        }
    </script>
}

然后,在选择一个选项之后,可以在Home/GetId中获取它的值,然后将其添加到sql脚本中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72141033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档