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

Đề tài: Tại Sao Không FindControl Trong Datalist ASP.NET Được!?

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

    Mặc định Tại Sao Không FindControl Trong Datalist ASP.NET Được!?

    Anh chị cho em hỏi xí! em có 1 Datalist1 như sau
    Code:
    <asp:DataList ID="DataList1" runat="server" DataKeyField="id" DataSourceID="SqlDataSource9">
            <ItemTemplate>
                id:<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' />
            </ItemTemplate>
    </asp:DataList>
    Datalist1 trên sử dụng SqlDataSource như sau
    Code:
    <asp:SqlDataSource ID="SqlDataSource9" runat="server" ConnectionString="<%$ ConnectionStrings:ConString %>" 
    SelectCommand="SELECT * FROM [WebsiteMau] WHERE (([id] = @id) AND ([tinhtrang] = @tinhtrang))">
            <SelectParameters>
                <asp:QueryStringParameter Name="id" QueryStringField="id" Type="Int64" />
                <asp:Parameter DefaultValue="2" Name="tinhtrang" Type="Int64" />
            </SelectParameters>
        </asp:SqlDataSource>
    Trong .cs em có đoạn code sau để findcontrol
    Code:
    for (int z = 0; z < DataList1.Items.Count; z++)
            {
                Label idLabel = (Label)DataList1.Items[z].FindControl("idLabel");
                idLabel.Visible = false;
            }
    bình thường thì idLabel nằm trong DataList1 sẽ ẩn đi nhưng đây nó lại không ẩn!
    Nếu em sữa SqlDataSource trên thành như sau thì lại được
    Code:
    <asp:SqlDataSource ID="SqlDataSource10" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConString %>" 
            SelectCommand="SELECT TOP 1 * FROM [WebsiteMau] WHERE ([tinhtrang] = @tinhtrang)">
            <SelectParameters>
                <asp:Parameter DefaultValue="2" Name="tinhtrang" Type="Int64" />
            </SelectParameters>
        </asp:SqlDataSource>
    kết quả idLabel nằm trong DataList1 sẽ ẩn! vậy cho em hỏi tại sao khi cho điều kiện id = QueryString[ID] thì lại không findcontrol được ạ! em cảm ơn!

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

    nếu như cái đoạn code này

    Visual C# Code:
    1. for (int z = 0; z < DataList1.Items.Count; z++)
    2.         {
    3.             Label idLabel = (Label)DataList1.Items[z].FindControl("idLabel");
    4.             idLabel.Visible = false;
    5.         }
    nhằm ẩn đi thì sao ko gán luôn trên mã html


    Visual C# Code:
    1. id:<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' Visible ='<%=dieukien() %>' />

    Visual C# Code:
    1. publish string dieukien()
    2. {
    3. .......
    4. }

    Mục đính bạn ẩn nó đi mình ko biết là gì,có thể lấy ID để xóa gì đó,.....

    Bạn nên tìm hiểu itemdatabound in datalist để biết thêm về các xử lý trong Datalist

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

    không ạ! đây là ví dụ minh họa thôi! ý em hỏi là tại sao lại không FindControl được khi dùng SQLDatasource có điều kiện là QueryString! nếu dùng dataset ở .cs thì lại được!?

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

    Mình ko dùng SQLDatasource bao giờ nên ko có câu trả lời chính xác.
    Mình toàn dùng itemdatabound in datalist để giải quyết các vấn đề như của bạn

  5. #5
    Ngày gia nhập
    04 2010
    Nơi ở
    Trên hành tinh thứ ba tính từ Mặt trời
    Bài viết
    202

    Bạn dùng QueryString, vậy thì bạn kiểm tra lại xem URL có truyền querystring id vào không? Và kiểm tra lại xem nó có dữ liệu với cái id đó ko
    Microsoft Student Partner
    University of Information Technology - VNUHCM
    Visit my blog: My power is my mind

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

    Mặc định Tại Sao Không FindControl Trong Datalist ASP.NET Được!?

    Trích dẫn Nguyên bản được gửi bởi hungnm Xem bài viết
    Mình ko dùng SQLDatasource bao giờ nên ko có câu trả lời chính xác.
    Mình toàn dùng itemdatabound in datalist để giải quyết các vấn đề như của bạn
    chào bạn bạn có code nào dùng itemdatabound in datalist để hiển thị dữ liệu từ csdl ra datalist được không, mình đang gặp rắc rối ở chỗ viết code này mong dc bạn giúp đỡ mình viết bằng C#

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

    hì! nếu không dùng SqlDataSource thì ok! mình dùng DataSet! ^^

  8. #8
    Ngày gia nhập
    10 2010
    Bài viết
    518

    Bác viết code trong pageLoad thì khi đấy DataList nó chưa bind xong dữ liệu, viết trong Load của dataList xem

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

  1. Làm thế nào sử dụng FindControl trong PopupExtender Ajax Asp.net
    Gửi bởi hung04501 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-04-2012, 03:41 PM
  2. FindControl TemplateField trong phương thức Post
    Gửi bởi prt_awm trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 17-03-2012, 08:19 AM
  3. Hỏi Cách sử Dụng findcontrol() trong gridview?
    Gửi bởi nguyentribuucntt08 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 8
    Bài viết cuối: 09-01-2012, 10:43 PM
  4. Không thể FindControl khi dùng Session
    Gửi bởi nhatquai trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 23-08-2011, 12:16 AM
  5. Đưa dữ liệu lên datalist C#. Thực hiện thêm, sửa xóa datalist như thế nào?
    Gửi bởi congtuazx trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 12-05-2009, 09:42 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