2010-08-20 2 views
1

J'ai une table dynamique qui crée un div (nouveau panneau) pour chaque TD et je veux donner à ce div une classe ...Puis-je ajouter une classe au contrôle de panneau dans le code derrière?

Puis-je ajouter avec Attributes.Add ou avec cssClass une classe au panneau?

Je demande becouse j'ai essayé avec les deux et j'ai obtenu le même resault .... crash du navigateur !!!

Chaque autre attribut fonctionne très bien, et je ne comprends pas pourquoi ....

Panel div = new Panel(); 
div.ID = "div" + "_" + i.ToString() + "_" + j.ToString(); 
div.Height = _CellHeight; 
div.Width = _CellWidth; 

. . .

div.CssClass = "droppable"; 
td.Controls.Add(div); 

essayant d'ajouter le tout code

<link href="Styles/Kanpai.css" rel="stylesheet" type="text/css" /> 
<style type="text/css"> 
    .draggable { width: 20px; height: 20px; background-color:Blue;} 
    .draggable_big { width: 40px; height: 40px; background-color:Blue;} 
    .draggable_wide { width: 40px; height: 20px; background-color:Blue;} 
    .draggable_long { width: 20px; height: 40px; background-color:Blue;} 
    .droppable { width: 20px; height: 20px; background-color:Red;} 
</style> 
<script src="JavaScript/jquery-1.4.2.js" type="text/javascript"></script> 
<script src="JavaScript/jquery-ui-1.8.4.js" type="text/javascript"></script> 
<script src="JavaScript/Accordion.js" type="text/javascript"></script> 
<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $(".draggable").draggable({ snap: '.droppable' }); 
     $(".draggable_big").draggable({ snap: '.droppable' }); 
     $(".draggable_wide").draggable({ snap: '.droppable' }); 
     $(".draggable_long").draggable({ snap: '.droppable' }); 
     $(".draggable_big").draggable("option", "cursor", 'move'); 
     $(".draggable_big").draggable("option", "cursorAt", {right:15,top:15}); 
     $(".draggable_wide").draggable("option", "cursor", 'move'); 
     $(".draggable_wide").draggable("option", "cursorAt", {right:15,top:15}); 
     $(".draggable_long").draggable("option", "cursor", 'move'); 
     $(".draggable_long").draggable("option", "cursorAt", {right:15,top:15}); 
     $(".droppable").droppable({ 
      drop: function() {alert('dropped:' + $(this).attr('id')); } 
     }); 
     $(".droppable").droppable("option", "tolerance", 'pointer'); 
    }); 
</script> 

רשימת האיזורים לבחירה: בחר איזור:

c'est le code dans le fichier Parrent, celui qui appelle l'UC qui construit la ta ble ...

maintenant. l'UC:

public void CreatTable() 
{ 
    //לולאה ליצירת טבלה דינאמית לפי בחירת המתכנת 
    for (int i = 0; i < Convert.ToInt16(_RowNum); i++) 
    { 
     //שורה חדשה 
     TableRow tr = new TableRow(); 
     //קביעת זהות דינאמית לשורה 
     tr.ID = "tr" + i.ToString(); 
     //לולאה ליצירת העמודות בשורה 
     for (int j = 0; j < Convert.ToInt16(_ColNum); j++) 
     { 
      //תא חדש 
      TableCell td = new TableCell(); 
      //קבלת זהות לתא לפי השורה והעמודה 
      td.ID = "td" + "_" + i.ToString() + "_" + j.ToString(); 
      //קביערת רוחב עמודה 
      td.Width = _CellWidth; 
      //קביעת גובה שורה 
      td.Height = _CellHeight; 
      //בקוד DIV יצירת אלמנט מסוג 
      Panel div = new Panel(); 
      //קביעת הזהות לאלמנט 
      div.ID = "div" + "_" + i.ToString() + "_" + j.ToString(); 
      //קביעת גובה ורוחב כמו התא 
      div.Height = _CellHeight; 
      div.Width = _CellWidth; 

      //בדיקה האם יש אובייקטים לאותו האיזור 
      if (_ObjectsForTable != null) 
      { 
       //אם כן, לכל תא בטבלה נבדוק האם יש לו רשומה מתאימה בבסיס המידע 
       //מעבר על כל הרשומות בטבלה 
       for (Int16 DataSetIndex = 0; DataSetIndex < _ObjectsForTable.Tables[0].Rows.Count; DataSetIndex++) 
       { 
        //בדיקה האם האינדקסים בטבלה של הרשומה הנוכחית מתאימים לתא הנוכחי 
        if (Convert.ToInt32(_ObjectsForTable.Tables[0].Rows[DataSetIndex]["RowID"]) == i && 
         Convert.ToInt32(_ObjectsForTable.Tables[0].Rows[DataSetIndex]["ColID"]) == j) 
        { 
         //אם כן, נייצר תמונה למסך לפי סוג האובייקט 
         switch(Convert.ToInt32(_ObjectsForTable.Tables[0].Rows[DataSetIndex]["ObjectTypeID"])) 
         { 
          case 1: 
           div.Style.Add("background-image", "url(Images/Objects/Tables/TableFull.jpg);"); 
           div.Style.Add("position", "absolute"); 
           div.Style.Add("width", "40px"); 
           div.Style.Add("height", "30px"); 
           break; 
          case 2: 
           div.Style.Add("background-image", "url(Images/Objects/Tables/BarChair.png);"); 
           div.Style.Add("position", "absolute"); 
           div.Style.Add("width", "20px"); 
           div.Style.Add("height", "15px"); 
           break; 
         } 
         //div.Style.Add("background-image", "url(Images/Objects/Tables/TableFull.jpg);"); 
        } 
       } 
      } 
      div.CssClass = "droppable"; 
      //לתא DIVהוספת ה 
      td.Controls.Add(div); 
      //בדיקה האם צריך גבולות או לא לפני שמכניסים את התא לשורה 
      if (_IsBorder) 
       td.Style.Add("border", "1px solid black;"); 
      else 
       td.Style.Add("border", "none;"); 
      //הוספת התא לשורה 
      tr.Controls.Add(td); 
     } 
     //הוספת השורה לטבלה 
     tblMain.Controls.Add(tr);   
    } 
    tblMain.Style.Add("position", "relative"); 
    //אם נבחרה תמונת רקע ויש תמונה רקע יש לשים אותה 
    if (_IsBackGroundImage == true && _BackGroundImage != "" && _BackGroundImage != null) 
     tblMain.Style["background-image"] = _BackGroundImage; 


} 

Je vous ai dit que c'est une longue .... :-)

est-il pas Weird .....?

10x

+2

Pouvez-vous décrire ce "crash du navigateur"? ASP.NET écran jaune? Le navigateur termine l'exécution et doit fermer? Bloque? –

+0

Une boucle le ne finit jamais, je peux mettre tout le code mais c'est un peu énorme et ce sont les seules lignes qui ont quelque chose à voir avec le div de sa contruction à l'appendice ... et quand je prends le ligne: "div.CssClass =" droppable ", de tout revient à la normale ... Je suppose que la chose que j'ai remarquée est que dans chaque exemple ils utilisent l'Id de l'élément et j'utilise l'objet lui-même ... Ma question était si je peux utiliser l'objet et non l'ID de l'objet et si j'ai besoin Pour utiliser l'identifiant, comment puis-je le faire avec le code tel qu'il est? 10x .... – Erez

+0

À quoi correspond la classe 'droppable' sur l'interface utilisateur? Utilisez-vous jQuery-UI ou un autre outil d'interface utilisateur côté client? Peut-être que c'est parce que vous créez trop de divs draggable/droppable pour la bibliothèque javascript à gérer? (C'est-à-dire lorsque vous ajoutez une classe 'droppable' à plusieurs divs, l'interface utilisateur doit les initialiser, quand vous sortez la classe, ce n'est pas le cas - d'où le goulot d'étranglement ...) Peut-être? –

Répondre

2

Comme tous WebControls, utilisez la propriété .CssClass commune pour définir ou modifier la classe.

Cela me semble que votre problème n'est pas lié à la définition d'une classe CSS, mais quelque chose d'autre. Définir une classe ne provoquera pas le crash du navigateur.

Pouvez-vous envoyer l'intégralité de votre code plutôt qu'un extrait?

+0

j'ai ajouté tout le code i peut ... :-) 10x ... – Erez

Questions connexes