Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Cách lấy nhiều giá trị trong 2 Repeater lồng nhau?

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

    Mặc định Cách lấy nhiều giá trị trong 2 Repeater lồng nhau?

    Chào mọi người!

    Mình đang làm 1 chức năng cho phép người dùng chọn 1 hay nhiều giá trị sử dụng 2 reapeater lồng nhau. Nhưng k biết lấy các giá trị trong repeater thứ 2 bên trong như thế nào.



    Cụ thể là mình có nhiều loại thuộc tính. Ở mỗi loại thuộc tính người dùng có thể chọn 1 hoặc nhiều giá trị thuộc tính khác nhau. Và làm thế nào lấy được các giá trị mà người dùng chọn( Check box),.. Mình gửi kèm code C# mọi người coi thử..

    <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_OnItemDataBound">
    <ItemTemplate>
    <li>
    <tr>
    <td style="width: 120px; padding-bottom: 15px;
    padding-top: 15px; vertical-align: middle; border-top-style: solid; border-top-width: 1px; border-top-color: #F1F1F1;">
    <asp:Label ID="Label14" runat="server" Text='<%# Eval("TenLoaiThuocTinh") %>'></asp:Label>
    </td>
    <td style="vertical-align: middle;padding-left: 24px;padding-top: 7px;">
    <asp:HiddenField ID="hf" Value='<%#Eval("LoaiThuocTinhID") %>' runat="server" />
    <asp:HiddenField ID="hfDangHienThi" Value='<%#Eval("DangHienThi") %>' runat="server" />
    <ul style="list-style-type: none;padding-left: 0px;">
    <asp:Repeater ID="Repeater2" runat="server">
    <ItemTemplate>
    <li style="float: left; width: 25%">
    <asp:CheckBox ID="CheckBox1" Text='<%#Eval("GiaTri") %>' runat="server" />
    </li>
    </ItemTemplate>
    </asp:Repeater>
    </ul>
    <asp:Panel ID="Panel2" Visible="false" runat="server">
    <asp:TextBox CssClass="tab_textbox" Width="100px" ID="TextBox1" runat="server"></asp:TextBox>
    <asp: DropDownList CssClass="tab_dropbox" Width="220px" ID="DropDownList1" runat="server">
    </aspropDownList>
    </asp:Panel>
    <asp:Panel ID="Panel3" Visible="false" runat="server">
    <asp: DropDownList CssClass="tab_dropbox" Width="100%" ID="DropDownList2" runat="server">
    </asp: DropDownList>
    </asp:Panel>
    </td>
    </tr>
    </li>
    </ItemTemplate>
    </asp:Repeater>


    Chú thích: Cái Repeater thứ nhất mình load ra nhiều loại sản phẩm. Cái repeater thứ 2 bên trong mình dùng load ra các thuộc tính dạng checkbox..

    Mọi người giúp mình. Thanhks!

  2. #2
    Ngày gia nhập
    12 2010
    Bài viết
    99

    bạn có thể lọc qua các control checkbox rồi lấy ra những ô nào đã được check
    Code:
     for (int i = 0; i < Repeater4.Items.Count; i++)
            {
                CheckBox cBox = (CheckBox)Repeater4.Items[i].FindControl("CheckSelect");
                if(cBox.Checked){
                    //checkbox đã check
                }
            }

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

    Thanks!

    Mình làm được rồi. Mình gửi kèm code C# để mọi người cùng tham khảo nhé!

    DropDownList dr1 = null;
    DropDownList dr2 = null;
    TextBox txt = null;
    HiddenField hfIDLoaiThuocTinh = null;
    for (int i = 0; i < Repeater1.Items.Count; i++)
    {
    hfIDLoaiThuocTinh = (HiddenField)Repeater1.Items[i].FindControl("hf");
    Repeater rptThuocTinhCheckBox = (Repeater)Repeater1.Items[i].FindControl("Repeater2");
    dr1 = (DropDownList)Repeater1.Items[i].FindControl("DropDownList1");
    dr2 = (DropDownList)Repeater1.Items[i].FindControl("DropDownList2");
    txt = (TextBox)Repeater1.Items[i].FindControl("TextBox1");
    for(int j=0;j<rptThuocTinhCheckBox.Items.Count;j++)
    {
    CheckBox checkThuocTinh = (CheckBox)rptThuocTinhCheckBox.Items[j].FindControl("CheckBox1");
    if (checkThuocTinh.Checked)
    {
    DataRow dr;
    dr = tbl.NewRow();
    dr.SetField("GiaTri", checkThuocTinh.Text);
    dr.SetField("IDLoaiThuocTinh", hfIDLoaiThuocTinh.Value.ToString());
    dr.SetField("SoLuong", 0);
    tbl.Rows.Add(dr);
    }
    }
    }

    if (dr2.SelectedValue != "0")
    {
    DataRow dr;
    dr = tbl.NewRow();
    dr.SetField("GiaTri", dr2.SelectedValue.ToString());
    dr.SetField("IDLoaiThuocTinh", hfIDLoaiThuocTinh.Value.ToString());
    dr.SetField("SoLuong", 0);
    tbl.Rows.Add(dr);
    }
    if (dr1.SelectedValue != "0" && txt.Text != "")
    {
    DataRow drr;
    drr = tbl.NewRow();
    drr.SetField("GiaTri", txt.Text.Trim().ToString() + "," + dr1.SelectedItem.Text.ToString());
    drr.SetField("IDLoaiThuocTinh", hfIDLoaiThuocTinh.Value.ToString());
    drr.SetField("SoLuong", 0);
    tbl.Rows.Add(drr);
    }
    return tbl;

    Ở đây mình thêm dữ liệu vào 1 bảng tbl đã được khai báo.

    Thân!

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

  1. MS SQL với C# Nhiều khóa giống nhau trong 1 table
    Gửi bởi Shikamaru trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 17-12-2013, 10:51 AM
  2. Cách xử lý button khi 2 Repeater lồng nhau trong ASP.NET?
    Gửi bởi chomsao_nhanma trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 21-05-2013, 05:29 PM
  3. làm sao lấy giá trị trong file JSON nhiều mảng lồng vào nhau
    Gửi bởi nhin_cai_gi trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 7
    Bài viết cuối: 09-05-2013, 08:51 PM
  4. Trả lời: 0
    Bài viết cuối: 16-09-2011, 12:46 PM
  5. Xử lý ItemCommand của Repeater lồng nhau trong C#?
    Gửi bởi C_moi_hoc trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 16-04-2011, 09:41 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