Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > ขอผู้ชี้แนะด้วยนะครับ เกี่ยวกับ DropDownList ใน ASP.NET กับ MVC C#



 

ขอผู้ชี้แนะด้วยนะครับ เกี่ยวกับ DropDownList ใน ASP.NET กับ MVC C#

 



Topic : 045977



โพสกระทู้ ( 160 )
บทความ ( 0 )



สถานะออฟไลน์




ถาม: การเรียกข้อมูลจากฐานข้อมูลออกมาแสดงใน ddl เพื่อเก็บ ID และ จะบันทึกข้อมูล
ยกตัวอย่างเช่น การเพิ่มข้อมูล city,state,country โดยการเลือกเพิ่มอาจจะต้องมีข้อมูล counrty ครบก่อน
ขั้นที่ 1 เพิ่ม state (การ create state) โดยเพิ่มชื่อ state และ กด ddl เพื่อเลือก country (ใน table "state" เก็บ Country_ID)


จริงๆ แล้ว ผมต้องการ จะสร้างการเก็บข้อมูลของแต่ละประเทศโดยสามารถ เพิ่ม ลบ แก้ไขได้เลย ขอยกตัวอย่างที่ผมเข้าใจนะครับ

ข้อที่ 1 ผมต้องการ create country(ทำได้แล้ว)
ข้อที่ 2 ผมต้องการ create State อันนี้มีช่องตามในรูป แต่ระบบจะเรียกรายชื่อประเทศ ออกมาอยู่ใน DDL(dropdownlist) เพื่อเก็บ ID ของประเทศ (ยังทำไม่ได้)
ข้อที่ 3 ผมต้องการ create city ก็จะคล้ายๆกับ create State แต่จะเรียกรายชื่อ state และ country ออกมา(ยังทำไม่ได้)

หรือในความเข้าใจอีก 1 ข้อคือ เราอาจจะทำกลับกัน คือ เรียกรายชือประเทศให้แสดงใน DDL แล้วเพิ่ม state หรือ city โดย DDL ของ Country อาจจะอยู่ด้านบน และ ช่อง text box ของ state ก็จะอยู่ด้านล่าง ก็เหมือนกับ city ด้วยในกรณีนี้




dropdownlist


ASP หน้า Create.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Contact.ViewModels.State>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
	Create
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <form id="form1" runat="server">

    <h2>Create</h2>

    <% using (Html.BeginForm())
       {%>
        <%= Html.ValidationSummary(true)%>

        <fieldset>
            <legend>Fields</legend>
            
            <div class="editor-label">
                <%= Html.LabelFor(model => model.State_ID)%>
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.State_ID)%>
                <%= Html.ValidationMessageFor(model => model.State_ID)%>
            </div>
            
            <div class="editor-label">
                <%= Html.LabelFor(model => model.State_Name_EN)%>
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.State_Name_EN)%>
                <%= Html.ValidationMessageFor(model => model.State_Name_EN)%>
            </div>
            
            <div class="editor-label">
                <%= Html.LabelFor(model => model.State_Name_TH)%>
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.State_Name_TH)%>
                <%= Html.ValidationMessageFor(model => model.State_Name_TH)%>
            </div>
            
            <div class="editor-label">
                <%--<%= Html.LabelFor(model => model.Country_ID) %>--%>
                 <%= Html.LabelFor(Model => Model.Country.Country_Name_EN)%>
            </div>

            <div class="editor-field">
                           
                    <%= Html.ValidationMessageFor(model => model.Country.Country_Name_EN)%>
<%= Html.TextBoxFor(model => model.Country_ID) %>
                <%= Html.ValidationMessageFor(model => model.Country_ID) %>
                </div>
            
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>

    <% } %>


    <div>
        <%= Html.ActionLink("Back to List", "Index") %>
    </div>

    </form>

</asp:Content>




Code (C#) หน้า StateController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Contact.ViewModels;
using Contact.Models;
using System.ComponentModel.DataAnnotations;
namespace Contact.Controllers
{
    public class StateController : Controller
    {
        //
        // GET: /State/

        public ActionResult Index()
        {
            var db = new Contact.ViewModels.IEOStudyDataContext();

            return View(db.States);
        }

        //
        // GET: /State/Details/5

        public ActionResult Details(int id)
        {
            var db = new Contact.ViewModels.IEOStudyDataContext();
            var state = db.States.SingleOrDefault(x => x.State_ID == id);
            return View(state);
            
        }

        //
        // GET: /State/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /State/Create

        [HttpPost]
        public ActionResult Create(State state)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    // TODO: Add insert logic here
                    var db = new Contact.ViewModels.IEOStudyDataContext();
                    db.States.InsertOnSubmit(state);
                    db.SubmitChanges();
                    return RedirectToAction("Index");
                }
                catch
                {
                    return View(state);
                }
            }
            return View(state);
        }
        
        //
        // GET: /State/Edit/5
 
        public ActionResult Edit(int id)
        {
            var db = new Contact.ViewModels.IEOStudyDataContext();
            var state = db.States.SingleOrDefault(x => x.State_ID == id);
            return View(state); 
        }

        //
        // POST: /State/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            var db = new Contact.ViewModels.IEOStudyDataContext();
            var state = db.States.SingleOrDefault(x => x.State_ID == id);
            if (ModelState.IsValid)
            {

                try
                {

                    UpdateModel(state);
                    db.SubmitChanges();
                    return RedirectToAction("Index");
                }
                catch
                {
                    return View(state);
                }
            }
            return View(state);
        }

        //
        // GET: /State/Delete/5
 
        public ActionResult Delete(int id)
        {
            var db = new Contact.ViewModels.IEOStudyDataContext();
            var state = db.States.SingleOrDefault(x => x.State_ID == id);
            return View(state);
        }

        //
        // POST: /State/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            var db = new Contact.ViewModels.IEOStudyDataContext();
            var statedel = db.States.SingleOrDefault(x => x.State_ID == id);
            db.States.DeleteOnSubmit(statedel);
            var state = db.States;


            if (ModelState.IsValid)
            {
                try
                {
                    // TODO: Add delete logic here
                    db.SubmitChanges();
                    return RedirectToAction("Index");
                }
                catch
                {
                    return View(state);
                }
            }
            return View(state);
        }
    }
}



mvc file ทั้งหมดที่เกี่ยวข้อง



Tag : .NET, Web (ASP.NET), C#, VS 2010 (.NET 4.x)









ประวัติการแก้ไข
2010-07-29 10:36:45
2010-07-31 11:48:31
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-07-25 12:53:24 By : chon2008 View : 4603 Reply : 10
 

 

No. 1



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ไม่ทราบดิคะ ยังเคยใช้ MVC นี่จิงๆจังๆสักทีค่ะ






Date : 2010-07-25 18:06:00 By : blurEyes
 


 

No. 2



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


แล้วโค้ดที่คุณให้มันเป็น mvc ยังไงหรือครับ

ผมเห็นมันก็ยังปนๆ กันอยู่ไม่ได้แยกกันเลย
Date : 2010-07-25 22:25:18 By : tungman
 

 

No. 3



โพสกระทู้ ( 160 )
บทความ ( 0 )



สถานะออฟไลน์


ผมเอารูปมาแทรกแล้วนะครับ อย่างไรก็ช่วยหน่อยนะครับ
Date : 2010-07-29 12:39:34 By : chon2008
 


 

No. 4

Guest


controller

// GET: /ApproveBuildSheet/
public DropDownListModel dropDownModel = new DropDownListModel();
public ActionResult Index()
{
ViewData["DropDown"] = dropDownModel.ProcessDropDown();
return View();
}
////////////////

.aspx


<select id="sltProcess" style="margin-left:5px;" >
<option value="0" selected="selected">---Selected---</option>
<%
foreach (var item in (List<DropDownListProperties>)ViewData["DropDown"])
{
%>
<option value="<%=item.Value %>">
<%=item.Text %>
</option>

<% } %>


ในส่วนของ model คุณได้สร้างยัง

public List<DropDownListProperties> ItemNoDropDown()
{
sql = " SELECT ITEM_NO";
sql += " FROM ............";
List<DropDownListProperties> listOfItemNo= new List<DropDownListProperties>();

if (conn.Connecting() == true)
{
resultData = conn.ExecuteSelectCommandSQL(sql);

if (resultData.Rows.Count > 0)
{
for (int i = 0; i < resultData.Rows.Count; i++)
{
var itemNoList = new DropDownListProperties
{
Text = resultData.Rows[i]["ITEM_NO"].ToString(),
Value = resultData.Rows[i]["ITEM_NO"].ToString()
};

listOfItemNo.Add(itemNoList);
}
}


/////////////////////

ลองดูเป็นแนวนะคับที่ผมเขียน
Date : 2011-02-01 11:19:36 By : bmw
 


 

No. 5

Guest


แก้ไขส่วน controller
public DropDownListModel dropDownModel = new DropDownListModel();
public BuildSheetModel buildSheetModel = new BuildSheetModel();
public ActionResult Index()
{
ViewData["ProcessDropDown"] = dropDownModel.ProcessDropDown();
return View();
}
Date : 2011-02-01 11:22:28 By : bmw
 


 

No. 6

Guest


ปนยังงัยครับ ผมก็เขียนประมาณนี้ รบกวนช่วยชี้แนะด้วย
Date : 2011-09-30 07:50:50 By : เอก
 


 

No. 7



โพสกระทู้ ( 297 )
บทความ ( 0 )



สถานะออฟไลน์


คุณใช้ mvc แล้วติดต่อฐานข้อมูลแบบ ado.net นั่นคุณ เชยมาก
mvc ต้องใช้คู่กับ Entity framework
แล้วคนส่วนมากเค้านิยมเขียนแบบ razon แต่จะเขียนแบบ aspx ก็ได้แต่คนไม่ค่อยนิยม

DropDownList เค้าใช้กันแบบนี้
@Html.DropDownList
@Html.DropDownListFor


แต่เวลาผมทำงานจิงๆผมจะใช้ Telerik เขียนประมาณนี้

@Html.Telerik().DropDownList().Name("ProjectId2").ClientEvents(events => events.OnChange("onChangeProjectId2")).DataBinding(binding => binding.Ajax().Select("Project_AjaxLoading", "MoveWaterMeterAndPaymentAdvance")).HtmlAttributes(new { style = "width:190px;" }).BindTo(ViewBag.ProjectId)
Date : 2011-09-30 11:30:30 By : nooknoname
 


 

No. 8



โพสกระทู้ ( 297 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้าอยากศึกษาเรื่อง mvc ผมแนะทำ 3 link ให้ไปดู

pluralsight

telerik

msdn


mvc.net เขียนง่ายกว่า asp.net เยอะ
ถ้าอยากได้โปรเจคที่เขียนด้วย mvc ก็จ้างผม
ถ้าอยากเขียน mvc เก่งๆ ก็จ้างผมไปสอนได้ 555+
Date : 2011-09-30 11:41:11 By : nooknoname
 


 

No. 9

Guest


link อะไรของพี่อ่ะครับ !
ผมไม่เห็นเข้าได้เลย ?
Date : 2011-09-30 15:05:47 By : @TEENEE
 


 

No. 10

Guest


ใส่ : หลัง http แล้วเอา "" ออกก้อเข้าได้แระคับ ^^
Date : 2012-03-20 13:24:30 By : 123
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอผู้ชี้แนะด้วยนะครับ เกี่ยวกับ DropDownList ใน ASP.NET กับ MVC C#
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่