2011-06-01 17 views
5

के साथ पुनरावर्तक का प्रबंधन कैसे करें मैं सभी तालिका डेटा को बांधने के लिए पुनरावर्तक का उपयोग कर रहा हूं।गैर निर्धारित कॉलम संख्या

और मेरी तालिका फ़ील्ड नाम, विकल्प 1, विकल्प 2 ... विकल्प 12 हैं। सभी 13 कॉलम। विकल्प कॉलम के लिए मान गतिशील हैं। कुछ समय में इसमें विकल्प 1 और 2 के लिए दो मान होते हैं और कुछ बार आंकड़े 1 से 12 के बीच बदल सकते हैं।

अब मैं केवल उन विकल्प कॉलम दिखाना चाहता हूं जिनमें कुछ मूल्य शामिल है।

इस तरह: -

Name 
Option1 
Option2 
Option8 

Name 
Option10 
Option12 
Option4 
Otion3 

Name 
Option5 
Option7 

Name 
Option3 
Option2 
Option5 
Option12 
Option4 

मतलब विकल्प तय नहीं कर रहे हैं। मैं इसे पुनरावर्तक नियंत्रण के साथ कैसे प्रबंधित कर सकता हूं। SO यह इस तरह के मूल्य दिखा सकता है। कृपया इसे हल करने का सही तरीका सुझाएं।

अग्रिम में धन्यवाद।

पहले संपादित

<%# !Equals(DataBinder.Eval(Container.DataItem, "Option1")%> 
.... 
<%# !Equals(DataBinder.Eval(Container.DataItem, "Option12")%> 

मान लीजिए मैं इस 12 विकल्प इस तरह की है। अब यदि मेरे डेटा स्रोत में केवल विकल्प 1 से 5 के मान हैं तो मुझे आवश्यकता है कि शेष 6 से 12 विकल्प दोहराने पर नहीं दिखाए जाएंगे।

+0

निम्नलिखित मैं अपने जवाब में यह जाँच अद्यतन किया है के माध्यम से

जाओ। – jams

उत्तर

3

इस प्रयास करें यह आपके लिए उपयोगी है,

आईडी नाम आदेश

<ItemTemplate> 
     <tr style="background-color:FFECD8"> 
      <td valign="top"> 
       <%# DataBinder.Eval(Container.DataItem, "ID") %> 
      </td> 
      <td valign="top"> 
       <%# DataBinder.Eval(Container.DataItem,"Name") %> 
      </td> 
      <td> 
      <asp:Repeater Runat="server" ID="ordersRepeater" EnableViewState="false" 
       DataSource='<%# DataBinder.Eval(Container.DataItem, "Orders") %>'> 
       <ItemTemplate> 
        <%# DataBinder.Eval(Container.DataItem, "OrderID") %> - <%# DataBinder.Eval(Container.DataItem, "OrderName") %> - <%# DataBinder.Eval(Container.DataItem, "OrderCost")%> 
        <br /> 
       </ItemTemplate> 
      </asp:Repeater> 
      </td> 
     </tr> 
    </ItemTemplate> 


    <FooterTemplate> 
    </Table> 
    </FooterTemplate> 

कोड के पीछे इस प्रकार है:

प्रणाली का उपयोग करते हुए; System.Collections.Generic का उपयोग कर ; System.Data का उपयोग कर ; System.Data.SqlClient का उपयोग कर ; सिस्टम का उपयोग कर ; कॉन्फ़िगरेशन; System.Web का उपयोग कर ; System.Web.Security का उपयोग कर ; System.Web.UI का उपयोग कर ; System.Web.UI का उपयोग कर ।WebControls; System.Web.UI.WebControls.WebParts का उपयोग कर ; System.Web.UI.HtmlControls का उपयोग कर ;

सिस्टम.Text का उपयोग कर; System.Xml का उपयोग कर ; System.Xml.Schema का उपयोग कर ;

सार्वजनिक वर्ग ग्राहक { निजी int आईडी; सार्वजनिक int आईडी { {इसे वापस लौटाएं; } सेट {this.id = value; } }

private string name; 
public string Name 
{ 
    get { return this.name; } 
    set { this.name = value; } 
} 

public List orders; 
public List Orders 
{ 
    get { return this.orders; } 
    set { this.orders = value; } 
} 

}

सार्वजनिक वर्ग आदेश { निजी पूर्णांक OrderID; सार्वजनिक int ऑर्डर आईडी { {इसे वापस करें .orderID; } सेट {this.orderID = मान; } } निजी स्ट्रिंग ऑर्डरनाम; सार्वजनिक स्ट्रिंग ऑर्डरनाम { प्राप्त करें {इसे वापस करें .orderनाम; } सेट {this.orderName = value; } } निजी दशमलव आदेशकोस्ट; सार्वजनिक दशमलव ऑर्डरकोस्ट { प्राप्त करें {इसे वापस करें .orderCost; } सेट {this.orderCost = value; } } }

सार्वजनिक आंशिक वर्ग _Default: System.Web.UI.Page { संरक्षित शून्य Page_Load (वस्तु प्रेषक, EventArgs ई) { सूची orders1 = नई सूची(); ऑर्डर ऑर्डर 1 = नया ऑर्डर(); order1.OrderID = 1; ऑर्डर 1। ऑर्डरनाम = "पेप्सी"; order1.OrderCost = 12.5M; ऑर्डर 1। जोड़ें (ऑर्डर 1);

Order order2 = new Order(); 
    order2.OrderID = 2; 
    order2.OrderName = "7up"; 
    order2.OrderCost = 12M; 
    orders1.Add(order2); 

    List orders2 = new List(); 
    Order order3 = new Order(); 
    order3.OrderID = 4; 
    order3.OrderName = "Food"; 
    order3.OrderCost = 12.5M; 
    orders2.Add(order3); 

    List customers = new List(); 
    Customer c1 = new Customer(); 
    c1.ID = 1; 
    c1.Name = "Bilal"; 
    c1.Orders = orders1; 
    customers.Add(c1); 

    Customer c2 = new Customer(); 
    c2.ID = 2; 
    c2.Name = "potterosa"; 
    c2.Orders = orders2; 
    customers.Add(c2); 


    this.Repeater1.DataSource = customers; 
    this.Repeater1.DataBind(); 
} 

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 

} 

} लिंक

http://forums.asp.net/t/1118175.aspx/1

+0

उत्तर के लिए धन्यवाद मुझे लगता है कि यह मेरी मदद करेगा। मैं जांच करूंगा। –

1

आइटमडेटाबाउंड ईवेंट में आप आइटम की जांच कर सकते हैं और उन्हें छुपा सकते हैं या शायद उन्हें अपने पुनरावर्तक से हटा सकते हैं।

यहाँ कैसे इस घटना का उपयोग करने के एक उदाहरण है:

http://www.codeguru.com/csharp/.net/net_asp/tutorials/article.php/c12065

0

यदि स्तंभ नहीं है, तो आप पुनरावर्तक के ItemDataBoundEvent खाली कॉलम की जाँच करने के लिए, अगर आपको लगता है कि स्तंभ मान फिर आप उन्हें प्रदर्शित कर सकते हैं है लगता है का उपयोग करना चाहिए मूल्य तो आप अपनी दृश्यमान संपत्ति को झूठी सेट कर सकते हैं।
There is a very good example for you. You must look at it.

संबंधित मुद्दे