Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Giữ selected index trong dropdownlist MVC

  1. #1
    Ngày gia nhập
    05 2009
    Nơi ở
    Vinh city
    Bài viết
    157

    Mặc định Giữ selected index trong dropdownlist MVC

    Chào các bạn.
    Mình có 1 dropdownlist chứa category, 1 bảng chứa products. Khi chọn 1 category trong dropdown thì load lại trang và bảng sẽ chứa danh mục các products của category đó. Mình mắc ở chỗ khi load lại trag thì selectedindex của dropdown luôn là cái đầu tiên. Bạn nào biết cách giải quyết chỉ dùm mình chỗ này với. thanks all
    Everytime you smile, I smile!

  2. #2
    Ngày gia nhập
    04 2009
    Bài viết
    175

    Trích dẫn Nguyên bản được gửi bởi giangcoi48k Xem bài viết
    Chào các bạn.
    Mình có 1 dropdownlist chứa category, 1 bảng chứa products. Khi chọn 1 category trong dropdown thì load lại trang và bảng sẽ chứa danh mục các products của category đó. Mình mắc ở chỗ khi load lại trag thì selectedindex của dropdown luôn là cái đầu tiên. Bạn nào biết cách giải quyết chỉ dùm mình chỗ này với. thanks all
    Mình có ý tưởng thế này không biết có dùng được không hay có thể giúp bạn không vì mình cũng chưa thử. Là như thế này: bạn khai báo 1 biến để lưu index đó, trong sự kiện selectIndexChange của dropdownlist bạn lấy index gán cho biến kia, khi page load thì lấy biến đó để chỉ cái index cho dropdownlist.

  3. #3
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi giangcoi48k Xem bài viết
    Chào các bạn.
    Mình có 1 dropdownlist chứa category, 1 bảng chứa products. Khi chọn 1 category trong dropdown thì load lại trang và bảng sẽ chứa danh mục các products của category đó. Mình mắc ở chỗ khi load lại trag thì selectedindex của dropdown luôn là cái đầu tiên. Bạn nào biết cách giải quyết chỉ dùm mình chỗ này với. thanks all
    -Hi ,ASP thì mình không biết,chỉ biết PHP,nhưng mình nghĩ cách giải quyết 2 bên giống nhau.
    DropDownlist của bạn koi như là combobox trong html ( thẻ <select ></select>)
    Cách 1: Khôg cần load lại toàn bộ trang.
    Bạn dùng JQuery để bắt sự kiện change của combobox . Khi xảy ra sự kiện change thì bạn đổ dữ liệu ( nội dung danh mục con ) vào.JQuery có hỗ trợ hết.
    Cách 2: Khi bạn chọn category xong bạn có 1 nút để submit thông tin vừa chọn.
    Thì khi vừa load lại trang bạn kiểm tra xem trong HTTP POST ( GET) có hay không nếu có thì bạn đánh dấu thuộc tính selected cho subitem trong combobox đó.Ngược lại thì load bình thường

    PHP Code:
    1. echo "<select id='month' name='cbmonth'>";
    2. echo "<option value='0' >-None-</option>";
    3. $select=0;
    4. for($i=1;$i<=12;$i++)
    5. {
    6.        if(isset($_POST['cbmonth'])&& strcmp($_POST['cbmonth'],$i)==0)
    7.       {
    8.         echo "<option value='$i' selected='selected'> tháng $i </option>";
    9.         select=$i;
    10.        }
    11.       else  echo "<option value='$i'> tháng $i </option>";
    12. }
    13. echo "</select>";  
    14. if($select>0)
    15. {
    16.    // viết mã html,php ... cho sub cate cho cái vừa đc chọn ở trên.
    17. }

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Hà Nội | http://ipmac.vn
    Bài viết
    198

    Bạn thử paste mã ra đây cho tớ xem nào.

    Có một sai lầm hay gặp là trong sự kiện page_load: lúc nào cũng gán lại selected index -> thật ra chỉ cần gán lúc !Page.IsPostBack thôi

    Ngoài ra, bạn google thêm về cách sử dụng viewstate để lưu lại trạng thái của control nhé.

  5. #5
    Ngày gia nhập
    07 2011
    Bài viết
    35

    Bạn thử nghiên cứu cái này xem sao: mikesdotnetting.com/Article/128/Get-The-Drop-On-ASP.NET-MVC-DropDownLists

  6. #6
    Ngày gia nhập
    06 2010
    Bài viết
    490

    Mặc định Giữ selected index trong dropdownlist MVC

    mấy bạn có thời gian nghiên cứu im quá, tui thì ko có thời gian. nghiên cứu mvc được mấy bửa cái tới thi. giờ thì tới làm rồi project.
    Hãy bình tĩnh giải quyết mọi vấn đề.

  7. #7
    Ngày gia nhập
    05 2009
    Nơi ở
    Vinh city
    Bài viết
    157

    Trích dẫn Nguyên bản được gửi bởi anhnt3 Xem bài viết
    Bạn thử paste mã ra đây cho tớ xem nào.

    Có một sai lầm hay gặp là trong sự kiện page_load: lúc nào cũng gán lại selected index -> thật ra chỉ cần gán lúc !Page.IsPostBack thôi

    Ngoài ra, bạn google thêm về cách sử dụng viewstate để lưu lại trạng thái của control nhé.
    mình hỏi MVC mà bạn. Không có viewstate hay postback đâu bạn àh. Mình mò mẫm mãi cũng đc rồi. cảm ơn các bạn nhiều

    Trong Controller, ví dụ mình tạo action là ShowAllProduct, cần có 1 dropdownlist
    Visual C# Code:
    1.         public ActionResult ShowAllProduct(int? id)
    2.         {
    3.             var Category = from p in db.Categories
    4.                            select new { p.CategoryID, p.CategoryName };
    5.             ViewBag.Categories = new SelectList(Category,"CategoryID","CategoryName",id);
    6.             var Products = repository.GetProduct(id);
    7.             return View(Products);
    8.         }

    Trong View
    HTML Code:
    1. @model IEnumerable<NorthWind.Models.Product>
    2.  
    3. @{
    4.     ViewBag.Title = "ShowAllProduct";
    5.     ViewBag.ID = "ShowAllProduct";
    6.     Layout = "~/Views/Shared/AdminLayout.cshtml";
    7. }
    8. <div class="action">
    9.     <div id="Category" style="width:350px; float:left">
    10.         Chọn mục sản phẩm:
    11.         @Html.DropDownList("Category", ViewBag.Categories as SelectList, new { onchange = "document.location.href = '/ProductManager/ShowAllProduct/' + this.options[this.selectedIndex].value" })
    12.     </div>
    13.     <div id="Add">
    14.         <input type="submit" value="Thêm mới"/>
    15.     </div>
    16. </div>
    17. <div class="clear"></div>
    18. <div id="Content">
    19.     <table border="1" class="Data" width="100%">
    20.         <tr class="DataHeader">
    21.             <th><input type="checkbox" id="chkHeader" name="chkHeader" /></th>
    22.             <th>Tên sản phẩm</th>
    23.             <th>Nhà cung cấp</th>
    24.             <th>Số lượng/đơn vị</th>
    25.             <th>Đơn giá</th>
    26.             <th>Tồn kho</th>
    27.             <th>UnitOnOrder</th>
    28.             <th>ReorderLevel</th>
    29.             <th>Trạng thái bán</th>    
    30.             <th>Thao tác</th>        
    31.         </tr>
    32.         @foreach (var item in Model)
    33.         {
    34.             <tr class="DataItem">
    35.                 <td><input type="checkbox" id='@item.ProductID' name='@item.ProductID' /></td>
    36.                 <td>@item.ProductName</td>
    37.                 <td>@item.Supplier.CompanyName</td>
    38.                 <td>@item.QuantityPerUnit</td>
    39.                 <td>@item.UnitPrice</td>
    40.                 <td>@item.UnitsInStock</td>
    41.                 <td>@item.UnitsOnOrder</td>
    42.                 <td>@item.ReorderLevel</td>
    43.                 <td>@{ string text = (@item.Discontinued?"Ngừng bán":"Đang bán"); @text;}</td>
    44.                 <td>
    45.                     <a href="@Url.Action("EditProduct",new{id = item.ProductID})"><img src="../../Content/Images/edit_icons.png"  title="Sửa" alt="" /></a>
    46.                     &nbsp;
    47.                     <a href="@Url.Action("Delete",new{id = item.ProductID})"><img src="../../Content/Images/delete_small.png"  title="xóa" alt="" /></a>
    48.                 </td>
    49.             </tr>
    50.         }
    51.     </table>
    52. </div>
    Mình cop cả đoạn như thế, hy vọng các bạn sẽ sửa lại theo đúng ý mình.
    Cảm ơn bạn đã nhắc nhở
    Everytime you smile, I smile!

  8. #8
    Ngày gia nhập
    04 2012
    Bài viết
    7

    bạn ơi, trong đoạn code của bạn thì ViewBag bạn lấy ở đâu vậy? hay khai báo cái gì để nó ra cái đó. Mình làm toàn bị báo lỗi chỗ đấy

  9. #9
    Ngày gia nhập
    03 2010
    Bài viết
    236

    Trích dẫn Nguyên bản được gửi bởi haindvn Xem bài viết
    bạn ơi, trong đoạn code của bạn thì ViewBag bạn lấy ở đâu vậy? hay khai báo cái gì để nó ra cái đó. Mình làm toàn bị báo lỗi chỗ đấy
    Theo đoạn code của giangcoi48k
    Code:
     public ActionResult ShowAllProduct(int? id)
            {
                var Category = from p in db.Categories
                               select new { p.CategoryID, p.CategoryName };
              ViewBag.Categories = new SelectList(Category,"CategoryID","CategoryName",id);
                var Products = repository.GetProduct(id);
                return View(Products);
            }
    
     @Html.DropDownList("Category", ViewBag.Categories as SelectList, new { onchange = "document.location.href = '/ProductManager/ShowAllProduct/' + this.options[this.selectedIndex].value" })

  10. #10
    Ngày gia nhập
    09 2015
    Bài viết
    2

    Bạn dùng cái này trong Controllers
    -----------------------------------------------------------
    string kk = "";
    if (Session["k"] != null)
    {
    kk = Session["k"].ToString();
    }
    var khoa = (from k in db.khoas select k).ToList();
    if (kk != "" && kk != null)
    {
    ViewBag.khoa = new SelectList(khoa, "ID", "tenkhoa", selectedValue: kk);
    }
    else
    {
    ViewBag.khoa = new SelectList(khoa, "ID", "tenkhoa");
    }
    Dùng cái này trong Vew
    ------------------------------------------------------------
    @Html.DropDownList("khoa", null);

Các đề tài tương tự

  1. datagridview.Row[index].selected có sử dụng để chọn một row trong datagridview
    Gửi bởi vanthanhkbs trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 21-06-2012, 07:49 PM
  2. Lỗi Index was out of range khi dùng dropdownlist với gridview
    Gửi bởi starting trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 22-05-2012, 11:46 PM
  3. Selected trong ListBox như thế nào?
    Gửi bởi wintervt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 17-09-2011, 11:05 AM
  4. Lỗi: No DataBase Selected trong MySQL
    Gửi bởi chuong01 trong diễn đàn Thắc mắc MySQL và SQLite
    Trả lời: 42
    Bài viết cuối: 12-08-2010, 12:11 PM
  5. Selected trong Combobox với C#, giúp mình vấn đề này?
    Gửi bởi tieulong_001 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 07-05-2009, 08:46 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn