Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Viết menu bằng repeater lấy dữ liệu từ csdl

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    70

    Mặc định Viết menu bằng repeater lấy dữ liệu từ csdl

    Mình có 2 bảng này

    trên thanh menu là tên chuyên mục, trong mỗi chuyên mục là tên phân mục, mà mình không biết làm sao để dùng repeater để duyệt tất cả các phân mục trong mỗi chuyên mục

    Mình đã dùng 1 cái repeater để lấy tên chuyên mục rồi

    ASP Code:
    1. <asp:Repeater ID="Repeater1" runat="server" DataSourceID="adsChuyenMuc" OnItemDataBound="Repeater1_ItemDataBound">
    2.                 <ItemTemplate>
    3.                     <li><a href='<%#Eval("LienKet") %>' class="parent"><span>
    4.                         <asp:Label ID="lblTenChuyenMuc" runat="server" Text='<%#Eval("TenChuyenMuc")%>'></asp:Label>
    5.                         <asp:Label ID="lblMaChuyenMuc" runat="server" Text='<%#Eval("MaChuyenMuc")%>'></asp:Label>
    6.                         <ul>
    7. //repeater để lấy phân mục
    8.                             <asp:Repeater ID="Repeater2" runat="server" DataSourceID="adsPhanMuc">
    9.                                 <ItemTemplate>
    10.                                     <li>
    11.                                         <asp:Label ID="lblPhanChuyenMuc" runat="server" Text='<%#Eval("TenPhanMuc")%>'></asp:Label>
    12.                                     </li>
    13.                                 </ItemTemplate>
    14.                             </asp:Repeater>
    15.                         </ul>
    16.                     </span></a></li>
    17.                 </ItemTemplate>
    18.             </asp:Repeater>
    Code:
    <asp:AccessDataSource ID="adsChuyenMuc" runat="server"></asp:AccessDataSource>
    <asp:AccessDataSource ID="adsPhanMuc" runat="server"></asp:AccessDataSource>

    Visual C# Code:
    1.    string selectcom;
    2.     public string com
    3.     {
    4.         get { return selectcom; }
    5.         set { selectcom = value; }
    6.     }
    7.  protected void Page_Load(object sender, EventArgs e)
    8.     {
    9.         adsChuyenMuc.DataFile = "~/News.mdb";
    10.         adsPhanMuc.DataFile = "~/News.mdb";
    11.         adsChuyenMuc.SelectCommand = com;
    12.     }
    13.     protected void Button1_Click(object sender, EventArgs e)
    14.     {
    15.         Response.Redirect("Timkiem.aspx?TuKhoa=" + txtSearch.Text);
    16.     }
    17.     protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    18.     {
    19.         Label ten = (Label)e.Item.FindControl("lblMaChuyenMuc");
    20.         string truyvan="select * from phanmuc where machuyenmuc='"+ten.Text+"'";
    21.         adsPhanMuc.SelectCommand = truyvan;
    22.     }
    Ai giúp mình với, khi mình làm vậy thì nó chỉ lấy được các phân mục ở chuyên mục cuối và để vào tất cả các chuyên mục
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi khanhduy.8hpm : 19-05-2012 lúc 07:23 PM.

  2. #2
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    Ken làm theo cách này:

    HTML Code:
    1. <ul id="navmenu">
    2.                     <li><a href="Home.aspx" class="SubMenu" id="MenuHome"><p>Trang Chủ </p></a></li>
    3.                     <li><a href="Product.aspx" class="SubMenu" id="MenuProduct"><p>Sản Phẩm</p></a>
    4.                         <div class="ProductMenu">
    5.                             <asp:Repeater ID="rpt_Menu" runat="server"
    6.                                onitemdatabound="rpt_Menu_ItemDataBound">
    7.                                 <ItemTemplate>
    8.                                     <ul class='SubProductMenu'>
    9.                                         <li class="ListFrist"><a href="#" ><%# Eval("proname")%></a></li>
    10.                                         <asp:Repeater ID="rpt_Sub" runat="server">
    11.                                             <ItemTemplate>
    12.                                                 <li class="ProductListMenu"><a href="#"><%# Eval("subproname")%></a></li>
    13.                                             </ItemTemplate>
    14.                                         </asp:Repeater>
    15.                                     </ul>
    16.                                 </ItemTemplate>
    17.                             </asp:Repeater>
    18.                         </div>
    19.                     </li>
    20.                     <li><a href="Stores.aspx" class="SubMenu" id="MenuStores"><p>Cửa Hàng</p></a></li>
    21.                     <li><a class="SubMenu" id="MenuFreeMarket"><p>Chợ Trời</p></a></li>
    22.                     <li><a class="SubMenu" id="MenuHelp"><p>Hướng Dẫn</p></a></li>
    23.                 </ul>

    trong code thì :
    Visual C# Code:
    1. protected void rpt_Menu_ItemDataBound(object sender, RepeaterItemEventArgs e)
    2.         {
    3.             DataRowView dr = (DataRowView)e.Item.DataItem;
    4.             Repeater rpt_SubMenu = (Repeater)e.Item.FindControl("rpt_Sub");
    5.             if (rpt_SubMenu != null)
    6.             {
    7.                 rpt_SubMenu.DataSource = SqlProcedure.SelectTable("News.SubProduct", new string[] { "subproname" }, "proid = '" + dr["proid"].ToString() + "'");
    8.                 rpt_SubMenu.DataBind();
    9.             }
    10.         }

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    70

    Như vậy thì đâu có được, lỡ admin xóa chuyên mục thì sao, vd như xóa mục San Pham thì sao ta, không biết 1 trang web tin tức có chức năng thêm, sửa chuyên mục không há. Em hỏi thêm là tại sao label trong asp lại không có tag vậy
    Đã được chỉnh sửa lần cuối bởi khanhduy.8hpm : 19-05-2012 lúc 07:54 PM.

  4. #4
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    cách trên chỉ là vd để bạn bik hướng làm thôi, còn cái chuyên mục thì phải load = csdl luôn.
    1 trang tin tức nếu chuyên nghiệp thì dùng personalization(webpart) để làm
    chuyên mục để tiện chỉnh sửa , ngta cho load động từ csdl luôn. như vậy chuyện mục mún thêm hay bớt thỉ việc xử lý trong csdl, bên code ko anh hưởng

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

    Trích dẫn Nguyên bản được gửi bởi kenturo Xem bài viết
    cách trên chỉ là vd để bạn bik hướng làm thôi, còn cái chuyên mục thì phải load = csdl luôn.
    1 trang tin tức nếu chuyên nghiệp thì dùng personalization(webpart) để làm
    chuyên mục để tiện chỉnh sửa , ngta cho load động từ csdl luôn. như vậy chuyện mục mún thêm hay bớt thỉ việc xử lý trong csdl, bên code ko anh hưởng
    Visual C# Code:
    1. rpt_SubMenu.DataSource = SqlProcedure.SelectTable("News.SubProduct", new string[] { "subproname" }, "proid = '" + dr["proid"].ToString() + "'");

    Có phải đây là 1 phương thức do bạn tự tạo phải không, bạn post lên cho mình coi đi
    Đã được chỉnh sửa lần cuối bởi khanhduy.8hpm : 20-05-2012 lúc 07:12 PM.

  6. #6
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    Mặc định Viết menu bằng repeater lấy dữ liệu từ csdl

    cái phía sau dấu = , là framework mình viết trong lúc làm nhìu project 1 lúc. viết 1 cái để chạy cho nhìu project

    Visual C# Code:
    1. public static DataSet SelectTable(string TableName, string[] ColumnSelect, string Condition)
    2. public static DataSet SelectTable(string TableName, string CoulumnSelect)
    3. public static DataSet SelectTable(string[] TableName, string[] ColumnSelect, string[] JoinConditon)
    4. public static DataSet SelectTable(string TableName, string[] ColumnSelect)

  7. #7
    Ngày gia nhập
    11 2011
    Bài viết
    70

    Có phải nó là phương thức trả thực hiện truy vấn select và trả về kiểu dataset hok vậy bạn

  8. #8
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    tất cả truy vấn mình đều trả về 1 dataset (datatable).
    vì những thử liên quan đến csdl minh làm thông qua code hết nên đưa về dataset là dễ thực hiện nhất.
    hơn nữa, mình sử dụng procedure + trigger nhìu nên bên phần code giảm tải nhìu, viết cũng ngắn gọn

  9. #9
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà nội
    Bài viết
    210

    Cá nhân mình thấy dùng List<T> tiện hơn
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Quá yêu em khiến em xem
    Đó như là sơ hở
    Em điểu khiển và biến tôi thành 1 thằng khở

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

  1. Dựng 1 menu Asp.net bằng thẻ <ul> <li> hay Control [ Menu , SiteMap , Repeater , Treeview]
    Gửi bởi teodainhan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 30-05-2013, 01:04 PM
  2. Cách làm menu với các mục lấy từ csdl trong ASP.NET?
    Gửi bởi phudq90 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 13
    Bài viết cuối: 12-10-2012, 03:54 PM
  3. hướng dẫn tạo định dạng menu nằm ngang repeater
    Gửi bởi thuan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 10-08-2011, 05:32 PM
  4. Tạo menu đa cấp từ csdl như thế nào??
    Gửi bởi xiaoku trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 11
    Bài viết cuối: 13-07-2011, 11:17 AM
  5. làm Menu bằng repeater trong ASP.NET như thế nào?
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 24-06-2011, 11:32 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