Répéteur et ajouter des colonnes d'en-tête et itemtemplate au chargement de la page
Je n'ai pas utilisé les répéteurs pour beaucoup plus que de montrer des données à partir d'un datatable.
Je fais construire une grille qui affiche une liste des utilisateurs et des colonnes de rôles que l'utilisateur a été attribué, illustré avec des cases à cocher (illustré avec le vrai/faux ci-dessous, mais prétend qu'ils sont des cases à cocher).
ex.
|Rep|Nom De L'Appelant|Closer|Gestionnaire|Utilisateur|
|Bob| | | false | faux |
|Tom |false |false | | Vrai |
Essentiellement de l'utiliser pour la gestion des rôles.
Cependant, les rôles peuvent changer plus tard si je veux charger les rôles(en-têtes et les éléments de façon dynamique dans la répétition.
Je ne suis pas sûr de la façon de faire ceci ou si c'est encore possible.
Je suppose que vous prenez une liste de rôle actuel de possibilités et de les charger dans le headertemplate mais je ne suis pas sûr de la façon de correspondre à ceux avec l'itemtemplate et comment créer des cases à cocher et les placer dans le itemtemplate.
Désolé si c'est un rudementary question.... J'apprécie tous les conseils!
Datatable exemple de données que je vais l'avoir... je crois que je vais aussi le retour des id pour les rôles et les utilisateurs qui ne sont pas indiqués ici.
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();
dc.DataType = Type.GetType("System.String");
dc.ColumnName = "RepName";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.DataType = Type.GetType("System.Boolean");
dc.ColumnName = "Caller";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.DataType = Type.GetType("System.Boolean");
dc.ColumnName = "closer";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.DataType = Type.GetType("System.Boolean");
dc.ColumnName = "Admin";
dt.Columns.Add(dc);
dc = new DataColumn();
dc.DataType = Type.GetType("System.Boolean");
dc.ColumnName = "SuperUser";
dt.Columns.Add(dc);
DataRow row;
row = dt.NewRow();
row["RepName"] = "Joe";
row["Caller"] = true;
row["closer"] = false;
row["Admin"] = true;
row["SuperUser"] = false;
dt.Rows.Add(row);
row = dt.NewRow();
row["RepName"] = "Bob";
row["Caller"] = true;
row["closer"] = false;
row["Admin"] = true;
row["SuperUser"] = false;
dt.Rows.Add(row);
row = dt.NewRow();
row["RepName"] = "Tom";
row["Caller"] = true;
row["closer"] = false;
row["Admin"] = true;
row["SuperUser"] = false;
dt.Rows.Add(row);
OriginalL'auteur sdmiller | 2010-04-30
Vous devez vous connecter pour publier un commentaire.
Imbriquer les Répéteurs: l'extérieur Répéteur est pour les lignes et a un HeaderTemplate et ItemTemplate qui contiennent à l'intérieur des Répéteurs pour l'en-tête et de la case des colonnes, respectivement. Quelque chose comme ceci:
et dans votre code derrière:
Merci beaucoup, je vais donner un coup de feu!
Petite question... j'ai besoin d'ajouter un oncheck événement, afin d'appeler une méthode dans le code derrière. Quand je fais cela tous les cases à cocher en regard de la même... Est-il un bon moyen de dire ce qui a été vérifié... peut de liaison de l'id de l'en-tête rôle de la case à cocher en quelque sorte. Caller id =1 de plus près id =2 ect... ils viennent d'une table de cours, mais vous obtenez l'idée. Merci pour votre aide... cela a été très bien jusqu'à présent!
J'ai ajouté une maquette datatable à mon premier post pour montrer le type de datatable je vais être contraignant. Comme indiqué ci-dessus... le vrai également contenir des champs de rôle, id utilisateur et id.
Voir mon dernier edit: le hfRoleIndex et lblUserName Commandes peuvent être utilisés pour capturer les coordonnées de chaque Case, et dans le CheckedChanged cas, vous pouvez récupérer leurs valeurs par à voyager de par le serveur DOM. Je suis à l'aide d'un Dictionnaire pour s'en moquer de données, mais cette stratégie peut être adoptée à toute source de données. Content que cela a été utile! J'ai dû comprendre ce genre de choses sur mon propre plus de deux ans d'expérience et qui ne pourrait jamais trouver une bonne ressource pour quelque chose qui devrait être un bon cas d'utilisation.
OriginalL'auteur Stephen Swensen
Je vais essayer quelque chose comme ceci:
OriginalL'auteur alejandrobog