jeu de case à cocher dans gridview basé sur datatable valeur
J'ai un contrôle gridview avec un champ de case à cocher et plusieurs champs liés. Le champ de case à cocher n'est pas directement la carte à un champ dans la base de données. Plutôt, je veux lire une valeur d'un champ dans la base de données et vérifier certains des cases à cocher.
Par exemple, étant donné les données suivantes à partir de la base de données -> datatable
TRAITÉES DATE DU NOM DE Y Mickey Mouse 11/15/2011 N Donald Duck 4/01/2012 Y De James Bond 5/02/2011
Je voudrais le contrôle gridview pour afficher une case à cocher, puis définissez la valeur de boîtes à DÉCOCHÉE où TRAITÉES = N et TRANSFORMÉS = Y avoir soit un non modifiable case à cocher ou pas de case à cocher.
TRAITÉES DATE DU NOM DE [/] Mickey Mouse 11/15/2011 [ ] Donald Duck 4/01/2012 [/] De James Bond 5/02/2011
Pour remplir le gridview, SQL stmt est exécutée sur une base de données, et le résultat de la requête SQL est stocké dans une datatable. Avant la liaison de la table de données pour le contrôle gridview, je voudrais vérifier le "traité" et activez la case à cocher en fonction de cette valeur.
Ici est le contrôle gridview (raccourci pour plus de clarté):
<asp:GridView ID="gridview_all_applicants" runat="server" AllowPaging="True">
<Columns>
<asp:TemplateField HeaderText="Complete">
<ItemTemplate>
<asp:CheckBox ID="process_flag" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="lastname" HeaderText="Last Name" ReadOnly="True" SortExpression="lastname" />
Voici ce que j'ai jusqu'à présent dans le code-behind de
SqlCommand cmd = new SqlCommand(sql query here);
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
da.SelectCommand = cmd;
//Save results of select statement into a datatable
da.Fill(dt);
foreach (DataRow r in dt.Rows)
{
//do some processing of data returned from query
//read the char value from the returned data and set checkbox
procflag = r["process_flag"].ToString().ToLower();
CheckBox chkbox = new CheckBox();
if (procflag == null || procflag == "n")
{
//SET CHECKBOX TO "NOT CHECKED"
}
else
{
//SET CHECKBOX TO "CHECKED" AND MAKE IT UNCLICKABLE
//----OR---- DO NOT DISPLAY CHECKBOX AT ALL.
}
} //end for each
gridview_all_applicants.DataSource = dt;
gridview_all_applicants.DataBind();
toute aide est grandement appréciée.
OriginalL'auteur itrickski | 2011-06-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire comme ceci:
Première dans sql server:
dans le code c#:
et enfin à aspx:
OriginalL'auteur Marco Hurtado
Comment sur une base de données agnostique solution, juste sur le tout hasard vous n'utilisez pas de base de données sql server 😉
OriginalL'auteur Kevin Burton
Ce un Fonctionne Parfaitement.J'ai modifié à l'aide de Kevin et marco Code.
Merci u Kevinv et Marco
OriginalL'auteur user825915