2011-03-01 18 views
11

मैं एक ASP.Net रूप है जो निम्न HTML उत्पादन करेगा लिखने की ज़रूरत:प्रोग्राम fieldset बनाना, ol/उल और ASP.Net में ली टैग, सी #

<fieldset> 
<legend>Contact Details</legend> 
<ol> 
<li> 
<label for="name">Name:</label> 
<input id="name" name="name" class="text" type="text" /> 
</li> 
<li> 
<label for="email">Email address:</label> 
<input id="email" name="email" class="text" type="text" /> 
</li> 
<li> 
<label for="phone">Telephone:</label> 
<input id="phone" name="phone" class="text" type="text" /> 
</li> 
</ol> 
</fieldset> 

हालांकि, क्षेत्र हैं जो होने के लिए फॉर्म में जोड़ा रनटाइम पर निर्धारित किया जाएगा, इसलिए मुझे रनटाइम पर फ़ील्डसेट बनाना होगा और लेबल, टेक्स्टबॉक्स, चेकबॉक्स इत्यादि के साथ ऑर्डर करने वाली सूची और सूचीकरण जोड़ना होगा।

मुझे मानक ASP.Net ऑब्जेक्ट्स नहीं मिल रहे हैं जो इन टैग को बनाएंगे।

उदाहरण के लिए, मैं सी # में निम्नलिखित की तरह कुछ करने के लिए करना चाहते हैं:

FieldSet myFieldSet = new FieldSet(); 
myFieldSet.Legend = “Contact Details”; 
OrderedList myOrderedList = new OrderedList(); 

ListItem listItem1 = new ListItem(); 
ListItem listItem2 = new ListItem(); 
ListItem listItem3 = new ListItem(); 

// code here which would add labels and textboxes to the ListItems 

myOrderedList.Controls.Add(listItem1); 
myOrderedList.Controls.Add(listItem2); 
myOrderedList.Controls.Add(listItem3); 

myFieldSet.Controls.Add(myOrderedList); 

Form1.Controls.Add(myFieldSet); 

वहाँ किसी भी मानक ASP.Net वस्तुओं इस उत्पादन कर सकते हैं जो, या वहाँ एक ही प्राप्त करने के कुछ अन्य तरीका है परिणाम?

मैट

उत्तर

26

आप इस कोशिश कर सकते हैं:

Panel myFieldSet = new Panel(); 
myFieldSet.GroupingText= “Contact Details”; 
HtmlGenericControl myOrderedList = new HtmlGenericControl("ol"); 

HtmlGenericControl listItem1 = new HtmlGenericControl ("li"); 
HtmlGenericControl listItem2 = new HtmlGenericControl ("li"); 
HtmlGenericControl listItem3 = new HtmlGenericControl ("li"); 

// code here which would add labels and textboxes to the ListItems 

myOrderedList.Controls.Add(listItem1); 
myOrderedList.Controls.Add(listItem2); 
myOrderedList.Controls.Add(listItem3); 

myFieldSet.Controls.Add(myOrderedList); 

Form1.Controls.Add(myFieldSet); 
+0

धन्यवाद, रिवाइंडर। यह बहुत अच्छा काम करता है। एक पैनल के बजाय, मैं निम्नलिखित नियंत्रण का उपयोग कर रहा हूं: http://dotnetslackers.com/articles/aspnet/buildingGroupBoxControl.aspx - फिर से धन्यवाद। – Matt

+0

यह सहायक था। ओएल बनाएँ, ली बनाएँ। ओएल को ली जोड़ें। पैनल में ओएल जोड़ें। – IMAbev

0

जवाब ऊपर के अनुसार, मैं एक उदाहरण है, जहां एक सरणी उपयोगी होने के लिए जैसा कि यहाँ दिखाया साबित कर दिया था। नोट: मैंने आईडी = "ulNoTree" के साथ एएसपीएक्स कोड में एक अनियमित सूची बनाई है।

int NumFloorsCt = 10; 
LinkButton[] rgBL; 
HtmlGenericControl[] rgLI; 

/// <summary> 
/// set up an array of LinkButtons with "li" controls 
/// - each LinkButton click is handled by the same event handler 
/// </summary> 
void SetUpLinkButtons(List<FLOOR> listFloorRecs) 
{ 
    NumFloorsCt = 10; 
    rgBL = new LinkButton[NumFloorsCt]; 
    rgLI = new HtmlGenericControl[NumFloorsCt]; 

    for (int i = 0; i < NumFloorsCt; i++) 
    { 
    rgBL[i] = new LinkButton(); 
    rgBL[i].ID = LB_ID_prefix + listFloorRecs[i].ID; 
    rgBL[i].Click += new System.EventHandler(LB_fp_Click); 
    rgBL[i].Text = listFloorRecs[i].DESCRIP; 
    rgBL[i].ToolTip = "Click here to display floor info"; 

    rgLI[i] = new HtmlGenericControl("li"); 
    rgLI[i].Controls.Add(rgBL[i]); 

    ulNoTree.Controls.Add(rgLI[i]); 
    } 
} 

/// <summary> 
/// event handler for any of the link buttons 
/// </summary> 
protected void LB_fp_Click(object sender, EventArgs e) 
{ 
    LinkButton btn = (LinkButton)(sender); 
    // do your action here 
} 
संबंधित मुद्दे