2016-03-27 21 views
0

Eklenmiş arzu çıkışı (Kayıt (lar))) Şu anda Kayıtlar sütununa birden çok bağlantı ekleyebilirim ancak komut adı ile muliple görüntü düğmesi ekleyemiyorum ve arkasında kodundan ben GetRecordLinks çağırarak dinamik görüntü düğmesi oluşturmak için çalıştık enter image description here komut argümanlar (Eval ("Kayıtları")) `aşağıda ben eklemek istiyorumListView add ile KomutAdı, Görünür, CommandArgument ile görüntü düğmesi ekle()

<asp:ListView ID="Student" runat="server" OnItemCommand="Student_ItemCommand" OnItemDeleting="Student_ItemDeleting" OnItemDataBound="Student_OnItemDataBound"> 
     <LayoutTemplate> 
      <table class="DataGrid"> 
       <tr class="HeaderRow">            
        <td style="width: 150px;">Name</td> 
        <td style="width: 200px;">Class(s)</td> 
        <td style="width: 150px;">Sex</td> 
        <td style="width: 200px;">Recordss</td> 
        <td style="width: 150px;">Status</td> 
        <td style="width: 30px; text-align: center;">Activate/Delete</td>             
       </tr> 
       <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder> 
      </table> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <tr>      
       <td> 
        <b><%# Eval("StudentLastName") %>, <%# Eval("StudentFirstName") %> <%# Eval("StudentMiddleName") %></b>       
       </td> 
       <td>       
        <%# JoinStringList(Eval("class")) %> 
       </td> 
       <td> <%# Eval("sex") %></td> 
       <td> 
        <%# GetRecordLinks(Eval("Records")) %>       
       </td>     
       <td> 
        <%# Eval("StatusID").ToString()=="0"?"Inactive":"Active" %> 
       </td> 
       <td style="text-align: center;">       

        <asp:ImageButton ImageUrl="img/Refresh.png" ID="StudentActive" runat="server" CommandName="Active" Visible='<%#Eval("StatusID").ToString()=="0"?true:false%>' CommandArgument='<%# Eval("StudentGUID") %>' />                 
        <asp:ImageButton ImageUrl="img/delete.png" ID="StudentDelete" runat="server" CommandName="Delete" Visible='<%#Eval("StatusID").ToString()=="0"?false:true%>' CommandArgument='<%# Eval("StudentGUID") %>' />             
       </td> 
      </tr> 
     </ItemTemplate> 
    </asp:ListView> 

GetRecordLinks yöntem

altında benim kodudur asp: ImageB Her bir öğrenci kaydı için CommandName, Visible, CommandArgument ile birlikte. Öğrenci A'nın bir hücredeki beş kaydın her birinde 5 kayıt olması durumunda 0xno'lu uçbirimi için 5 adet resim düğmesi vardır, böylece kullanmamaya bağlı olarak kaydı silebilir veya etkinleştirebilirim.

public string GetRecordLinks(object obj) 
    { 
     if (obj != null) 
     { 
      List<AppointmentDoc> docs = (List<AppointmentDoc>)obj; 
      StringBuilder sb = new StringBuilder();            
      foreach (AppointmentDoc rec in docs) 
      {      
       sb.Append("<a target='_blank' href=\"result.ashx?uuid=" + rec.UUID.ToString() + "\">" + rec.Name.Replace("student", "").Trim() + " (" + rec.SignedBy + ")" + (rec.staffSigned ? "*" : "") + "</a><br/>"); 
      } 
      return sb.ToString(); 
     } 
     return ""; 
} 

umut herhangi sorgular

sayesinde

cevap

0

Yer tutucu kullanmak ve buna da imagebuttons ekleyebilirsiniz varsa bana bildirin sorumu anlıyoruz. İlk olarak, değiştirin:

<td> 
    <%# GetRecordLinks(Eval("Records")) %>       
</td> 

ile:

<td> 
    <asp:PlaceHolder ID="phRecords" runat="server" /> 
</td> 

Sonra kod arkasında: Tek düğme eklemek istiyorum

void Student_OnItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    ... 
    PlaceHolder phRecords = e.Item.FindControl("phRecords") as PlaceHolder; 
    ImageButton imgButton = new ImageButton(); 
    // Set the ImageButton properties here 
    ph.Controls.Add(imgButton); 
} 

. Birkaç tane aynı hücreye eklemek için ImageButton oluşturma kodunu bir döngüye koyabilirsiniz.

Ayrıca, her ImageButtons'u her bir geri yüklemede yeniden oluşturmanız gerekir; bu nedenle, verilerinizi Page_Load yönteminde bağlamanız gerekebilir.

+0

Teşekkürler Connors ... Link ve görüntü düğmelerini dinamik olarak belirttiğiniz ve kullandığınız gibi PlacehHolder'ı kullandım. Listview'i tekrarlayıcıya değiştirdim ... ama şimdi sorunum var, dyanmik olarak oluşturduğum resim düğmesi iteamcommand'a işlenmiyor, ben backback içinde aynı yöntem bağladı .. hala çalışmıyor – appu

+0

ListView 'tutabilir ve ImageButton' KomutAdı '(ve gerekirse' CommandArgument ') ayarlayabilirsiniz? 'ItemCommand' olayını tetiklemelidir. – ConnorsFan

+0

teşekkürler ... Ben itemdatabound ve iteamcreated kullanılan tüm düğmeleri oluşturmak için dinamik olarak her şey iyi çalışır. – appu

İlgili konular