2015-12-14 3 views
0

Я хочу создать вложенные теги в asp.net C# code позади.
это:Html Тег в коде за

<fieldset> 
       <legend>دسترسی ها</legend> 
       <fieldset> 
        <legend>'<%# Eval("Group") %>'</legend> 
        <div style="width: 95%; margin: auto; padding: 0px 5% 0px 0px; text-align: center; display: inline-block;"> 
         <div class="tblHeader"> 
          <div class="TblTitle">عنوان</div> 
          <div class="TblChk">دارد</div> 
          <div class="TblChk">اصلا ندارد</div> 
          <div class="TblTitle">عنوان</div> 
          <div class="TblChk">دارد</div> 
          <div class="TblChk">اصلا ندارد</div> 
         </div> 
         <div> 
          <div class="TblTitle"> 
           <span>'<%# Eval("Item") %>'</span> 
          </div> 
          <div class="TblChk"> 
           <input type="checkbox" name="10-1" /> 
          </div> 
          <div class="TblChk"> 
           <input type="checkbox" name="10-1" /> 
          </div> 
          <div class="TblTitle"> 
           <span>'<%# Eval("Item") %>'</span> 
          </div> 
          <div class="TblChk"> 
           <input type="checkbox" name="11" /> 
          </div> 
          <div class="TblChk"> 
           <input type="checkbox" name="11" /> 
          </div> 
         </div> 
        </div> 
       </fieldset> 

на самом деле у меня есть много групп, которые содержат некоторые ребенок здесь является '<%# Eval("Item") %>'.
Как я могу это сделать?
Если я использовал DataList, '<%# Eval("Group") %>' был дубликат, и это не моя цель.
Я хочу, чтобы отобразить их, например, как показано на рисунке ниже:
enter image description here

+1

Какова ваша ** точная ** проблема? Прямо сейчас сложно вывести - что вы спрашиваете ... –

+0

@ ЭндиКорнеев, извините, я объяснил это, у вас есть какое-то решение? Благодарю. –

ответ

1

Используйте Panel вместо которой визуализируется как DIV, но это чистый сервер управления. Вложение их легко, вам просто нужно создать панели и добавить их в внешний вид внешней панели Controls.

Таким образом, вы можете использовать PlaceHolder -контроль (который является контейнером, который не лишила себя):

<asp:PlaceHolder ID="PanelContainer" runat="server"> 
</asp:PlaceHolder> 

В коде добавить метод, как это:

private void DataBindPanelContainer() 
{ 
    Panel main = new Panel(); 
    main.CssClass = "ItemData"; 

    Panel tblTitle = new Panel(); 
    tblTitle.CssClass = "TblTitle"; 
    Label lblTitle = new Label(); 
    lblTitle.ID = "LblTitle"; 
    lblTitle.Text = someField; // i don't know your datasource 
    tblTitle.Controls.Add(lblTitle); 
    main.Controls.Add(tblTitle); 

    Panel tblChk = new Panel(); 
    tblChk.CssClass = "TblChk"; 
    CheckBox chk = new CheckBox(); 
    chk.ID = "Chk1"; 
    chk.Text = "text for checkbox"; 
    tblChk.Controls.Add(chk); 
    main.Controls.Add(tblChk); 

    // .... 
    this.PanelContainer.Controls.Add(main); 
} 

и вызывать его из Page_Load:

protected void Page_Load(object sender, EventArgs e) 
{ 
    DataBindPanelContainer(); 
} 
Смежные вопросы