2010-08-09 5 views
0

J'ai un ensemble de choix (options) provenant de la base de données (environ 36 enregistrements) que je dois insérer dans Gridview de sorte que 18 ira une colonne et 18 dans une autre. Et comme ce sont des choix, les colonnes doivent être des colonnes de case à cocher. Donc ce que j'ai fait est que j'ai créé une table de données avec 2 colonnes et diviser les données en conséquence, puis le lier à la grille.Mais le problème est Si la liste des questions a un nombre impair d'éléments compte 37. Il est en blanc enregistrer avec la case à cocher dans mon gridview. Votre aide sera appréciée ... voir le code ci-dessous Dans mon aspx.csDiviser les données dans Asp.Net Gridview

 DataTable dTable = new DataTable(); 
     dTable.Columns.Add("Questionsclmn1", typeof(string)); 
     dTable.Columns.Add("Questionsclmn2", typeof(string)); 
     for (int item = 0; item < QuestionList.Count; item = item + 2) 
     { 
      DataRow drow = dTable.NewRow(); 
      drow["Questionsclmn1"] = QuestionList[item].Question; 
      if ((item + 1) < QuestionList.Count) 
       drow["Questionsclmn2"] = QuestionList[item + 1].Question;     
      dTable.Rows.Add(drow); 
     } 

     GrdVwQuestionsList.DataSource = dTable; 
     GrdVwQuestionsList.DataBind(); 

    In my Aspx file under gridview 
    <Columns> 
     <asp:TemplateField HeaderText="Please Choose the Options Below"> 
      <ItemTemplate> 
       <asp:CheckBox ID="chkQuestionList1" runat="server" 
       Text='<%# DataBinder.Eval(Container.DataItem, "Questionsclmn1")%>'/> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:CheckBox ID="chkQuestionList2" runat="server" 
       Text='<%# DataBinder.Eval(Container.DataItem, "Questionsclmn2")%>'/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

Merci à l'avance.

Cordialement, Chetan

Répondre

1

Je n'utiliseraient un GridView pour cela du tout. CheckboxList peut afficher des cases à cocher dans deux colonnes automatiquement.

<asp:CheckboxList runat="server" RepeatLayout="Table" RepeatColumns="2" RepeatDirection="Vertical" ... /> 

Il y a aussi DataList qui prend en charge les mêmes propriétés mais vous permet d'utiliser un modèle pour le contenu.

+0

Salut Merci Matti, j'essayais la liste de cases à cocher mais je ne savais pas que je pouvais utiliser la propriété repeatcolumn ... Merci pour votre aide ... C'est parfait ... – Chetan